@xchainjs/xchain-aggregator 0.1.19 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.esm.js +25660 -3
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +25659 -2
- package/lib/index.js.map +1 -1
- package/lib/protocols/chainflip/chainflipProtocol.d.ts +50 -0
- package/lib/protocols/chainflip/index.d.ts +1 -0
- package/lib/protocols/chainflip/utils.d.ts +6 -0
- package/lib/protocols/index.d.ts +1 -0
- package/lib/types.d.ts +2 -2
- package/package.json +16 -15
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/protocols/mayachain/mayachainProtocol.ts","../src/protocols/thorchain/thorchainProtocol.ts","../src/aggregator.ts"],"sourcesContent":["import { AssetCacao, MAYAChain } from '@xchainjs/xchain-mayachain'\nimport { MayachainAMM } from '@xchainjs/xchain-mayachain-amm'\nimport { MayachainQuery } from '@xchainjs/xchain-mayachain-query'\nimport { Asset, Chain, assetFromStringEx, eqAsset } from '@xchainjs/xchain-util'\nimport { Wallet } from '@xchainjs/xchain-wallet'\n\nimport { IProtocol, QuoteSwap, QuoteSwapParams, SwapHistory, SwapHistoryParams, TxSubmitted } from '../../types'\n\nexport class MayachainProtocol implements IProtocol {\n public readonly name = 'Mayachain' as const\n private mayachainQuery: MayachainQuery\n private mayachainAmm: MayachainAMM\n\n constructor(wallet?: Wallet) {\n this.mayachainQuery = new MayachainQuery()\n this.mayachainAmm = new MayachainAMM(this.mayachainQuery, wallet)\n }\n\n /**\n * Check if an asset is supported in the protocol\n * @param {Asset} asset Asset to check if it is supported\n * @returns {boolean} True if the asset is supported, otherwise false\n */\n public async isAssetSupported(asset: Asset): Promise<boolean> {\n if (eqAsset(asset, AssetCacao)) return true\n const pools = await this.mayachainQuery.getPools()\n return (\n pools.findIndex((pool) => pool.status === 'available' && eqAsset(asset, assetFromStringEx(pool.asset))) !== -1\n )\n }\n\n /**\n * Retrieve the supported chains by the protocol\n * @returns {Chain[]} the supported chains by the protocol\n */\n public async getSupportedChains(): Promise<Chain[]> {\n const inboundDetails = await this.mayachainQuery.getInboundDetails()\n return [MAYAChain, ...Object.values(inboundDetails).map((inboundAddress) => inboundAddress.chain)]\n }\n\n /**\n * Estimate swap by validating the swap parameters.\n *\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters.\n * @returns {QuoteSwap} Quote swap result. If swap cannot be done, it returns an empty QuoteSwap with reasons.\n */\n public async estimateSwap(params: QuoteSwapParams): Promise<QuoteSwap> {\n const estimatedSwap = await this.mayachainAmm.estimateSwap(params)\n return {\n protocol: this.name,\n toAddress: estimatedSwap.toAddress,\n memo: estimatedSwap.memo,\n expectedAmount: estimatedSwap.expectedAmount,\n dustThreshold: estimatedSwap.dustThreshold,\n fees: estimatedSwap.fees,\n totalSwapSeconds: estimatedSwap.inboundConfirmationSeconds || 0 + estimatedSwap.outboundDelaySeconds,\n slipBasisPoints: estimatedSwap.slipBasisPoints,\n canSwap: estimatedSwap.canSwap,\n errors: estimatedSwap.errors,\n warning: estimatedSwap.warning,\n }\n }\n\n /**\n * Perform a swap operation between assets.\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters\n * @returns {TxSubmitted} Transaction hash and URL of the swap\n */\n public async doSwap(params: QuoteSwapParams): Promise<TxSubmitted> {\n return this.mayachainAmm.doSwap(params)\n }\n\n /**\n * Get historical swaps\n * @param {Address[]} addresses Addresses of which return their swap history\n * @returns the swap history\n */\n public async getSwapHistory({ chainAddresses }: SwapHistoryParams): Promise<SwapHistory> {\n const swapHistory = await this.mayachainQuery.getSwapHistory({\n addresses: Array.from(new Set(chainAddresses.map((chainAddresses) => chainAddresses.address))),\n })\n return {\n count: swapHistory.count,\n swaps: swapHistory.swaps.map((swap) => {\n return { protocol: this.name, ...swap }\n }),\n }\n }\n}\n","import { AssetRuneNative, THORChain } from '@xchainjs/xchain-thorchain'\nimport { ThorchainAMM } from '@xchainjs/xchain-thorchain-amm'\nimport { ThorchainQuery } from '@xchainjs/xchain-thorchain-query'\nimport { Asset, Chain, assetToString, eqAsset } from '@xchainjs/xchain-util'\nimport { Wallet } from '@xchainjs/xchain-wallet'\n\nimport { IProtocol, QuoteSwap, QuoteSwapParams, SwapHistory, SwapHistoryParams, TxSubmitted } from '../../types'\n\nexport class ThorchainProtocol implements IProtocol {\n public readonly name = 'Thorchain' as const\n private thorchainQuery: ThorchainQuery\n private thorchainAmm: ThorchainAMM\n\n constructor(wallet?: Wallet) {\n this.thorchainQuery = new ThorchainQuery()\n this.thorchainAmm = new ThorchainAMM(this.thorchainQuery, wallet)\n }\n\n /**\n * Check if an asset is supported in the protocol\n * @param {Asset} asset Asset to check if it is supported\n * @returns {boolean} True if the asset is supported, otherwise false\n */\n public async isAssetSupported(asset: Asset): Promise<boolean> {\n if (eqAsset(asset, AssetRuneNative)) return true\n const pools = await this.thorchainQuery.thorchainCache.getPools()\n return (\n Object.values(pools).findIndex((pool) => pool.isAvailable() && assetToString(asset) === pool.assetString) !== -1\n )\n }\n\n /**\n * Retrieve the supported chains by the protocol\n * @returns {Chain[]} the supported chains by the protocol\n */\n public async getSupportedChains(): Promise<Chain[]> {\n const inboundDetails = await this.thorchainQuery.thorchainCache.getInboundDetails()\n return [THORChain, ...Object.values(inboundDetails).map((inboundAddress) => inboundAddress.chain)]\n }\n\n /**\n * Estimate swap by validating the swap parameters.\n *\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters.\n * @returns {QuoteSwap} Quote swap result. If swap cannot be done, it returns an empty QuoteSwap with reasons.\n */\n public async estimateSwap(params: QuoteSwapParams): Promise<QuoteSwap> {\n const estimatedSwap = await this.thorchainAmm.estimateSwap(params)\n return {\n protocol: this.name,\n toAddress: estimatedSwap.toAddress,\n memo: estimatedSwap.memo,\n expectedAmount: estimatedSwap.txEstimate.netOutput,\n dustThreshold: estimatedSwap.dustThreshold,\n fees: estimatedSwap.txEstimate.totalFees,\n totalSwapSeconds:\n estimatedSwap.txEstimate.inboundConfirmationSeconds || 0 + estimatedSwap.txEstimate.outboundDelaySeconds,\n slipBasisPoints: estimatedSwap.txEstimate.slipBasisPoints,\n canSwap: estimatedSwap.txEstimate.canSwap,\n errors: estimatedSwap.txEstimate.errors,\n warning: estimatedSwap.txEstimate.warning,\n }\n }\n\n /**\n * Perform a swap operation between assets.\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters\n * @returns {TxSubmitted} Transaction hash and URL of the swap\n */\n public async doSwap(params: QuoteSwapParams): Promise<TxSubmitted> {\n return this.thorchainAmm.doSwap(params)\n }\n\n /**x\n * Get historical swaps\n * @param {Address[]} addresses Addresses of which return their swap history\n * @returns the swap history\n */\n public async getSwapHistory({ chainAddresses }: SwapHistoryParams): Promise<SwapHistory> {\n const swapHistory = await this.thorchainQuery.getSwapHistory({\n addresses: Array.from(new Set(chainAddresses.map((chainAddresses) => chainAddresses.address))),\n })\n return {\n count: swapHistory.count,\n swaps: swapHistory.swaps.map((swap) => {\n return { protocol: this.name, ...swap }\n }),\n }\n }\n}\n","import { assetToString } from '@xchainjs/xchain-util'\nimport { Wallet } from '@xchainjs/xchain-wallet'\n\nimport { MayachainProtocol, ThorchainProtocol } from './protocols'\nimport {\n IProtocol,\n Protocol,\n QuoteSwap,\n QuoteSwapParams,\n SwapHistory,\n SwapHistoryParams,\n SwapResume,\n TxSubmitted,\n} from './types'\n\n// Class definition for an Aggregator\nexport class Aggregator {\n private protocols: IProtocol[]\n\n constructor(wallet?: Wallet) {\n this.protocols = [new ThorchainProtocol(wallet), new MayachainProtocol(wallet)]\n }\n\n /**\n * Estimate swap\n * @param {QuoteSwapParams} params Swap parameters\n * @returns the swap with the greatest expected amount estimated in the supported protocols\n */\n public async estimateSwap(params: QuoteSwapParams): Promise<QuoteSwap> {\n const estimateTask = async (protocol: IProtocol, params: QuoteSwapParams) => {\n const [isFromAssetSupported, isDestinationAssetSupported] = await Promise.all([\n protocol.isAssetSupported(params.fromAsset),\n protocol.isAssetSupported(params.destinationAsset),\n ])\n if (!isFromAssetSupported) throw Error(`${assetToString(params.fromAsset)} not supported in ${protocol.name}`)\n if (!isDestinationAssetSupported)\n throw Error(`${assetToString(params.destinationAsset)} not supported in ${protocol.name}`)\n\n return protocol.estimateSwap(params)\n }\n\n const results = await Promise.allSettled(this.protocols.map((protocol) => estimateTask(protocol, params)))\n\n let optimalSwap: QuoteSwap | undefined\n\n results.forEach((result) => {\n if (result.status === 'fulfilled') {\n if (!optimalSwap || result.value.expectedAmount.assetAmount.gte(optimalSwap.expectedAmount.assetAmount))\n optimalSwap = result.value\n }\n })\n\n if (!optimalSwap)\n throw Error(`Can not estimate swap from ${assetToString(params.fromAsset)} to ${assetToString(params.fromAsset)}`)\n\n return optimalSwap\n }\n\n /**\n * Do swap\n * @param {QuoteSwapParams & { protocol?: Protocol }} params Swap parameters. If protocol is not set,\n * estimateSwap will be call and swap will be done in protocol with the greatest expected amount\n * @returns the swap with the greatest expected amount estimated in the supported protocols\n */\n public async doSwap(params: QuoteSwapParams & { protocol?: Protocol }): Promise<TxSubmitted> {\n const protocolName = params.protocol ? params.protocol : (await this.estimateSwap(params)).protocol\n const protocol = this.protocols.find((protocol) => protocol.name === protocolName)\n\n if (!protocol) throw Error(`${protocolName} protocol is not supported`)\n return protocol.doSwap(params)\n }\n\n /**\n * Get historical swaps\n * @param {Address[]} addresses Addresses of which return their swap history\n * @returns the swap history\n */\n public async getSwapHistory(params: SwapHistoryParams): Promise<SwapHistory> {\n const getProtocolSwapHistory = async (protocol: IProtocol, params: SwapHistoryParams): Promise<SwapHistory> => {\n const supportedChains = await protocol.getSupportedChains()\n const compatibleChainAddresses = params.chainAddresses.filter(\n (chainAddress) => supportedChains.findIndex((supportedChain) => supportedChain === chainAddress.chain) !== -1,\n )\n return compatibleChainAddresses.length === 0\n ? {\n swaps: [],\n count: 0,\n }\n : protocol.getSwapHistory({\n chainAddresses: compatibleChainAddresses,\n })\n }\n\n const results = await Promise.allSettled(\n this.protocols.map((protocol) => {\n return getProtocolSwapHistory(protocol, params)\n }),\n )\n\n const swaps: SwapResume[] = []\n\n results.forEach((result) => {\n if (result.status === 'fulfilled') {\n swaps.push(...result.value.swaps)\n }\n })\n\n return {\n count: swaps.length,\n swaps: swaps.sort((swapA, swapB) => swapB.date.getTime() - swapA.date.getTime()),\n }\n }\n}\n"],"names":["MayachainQuery","MayachainAMM","eqAsset","AssetCacao","assetFromStringEx","MAYAChain","ThorchainQuery","ThorchainAMM","AssetRuneNative","assetToString","THORChain"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/protocols/mayachain/mayachainProtocol.ts","../src/protocols/thorchain/thorchainProtocol.ts","../../../node_modules/@polkadot/x-global/index.js","../../../node_modules/@polkadot/x-textdecoder/fallback.js","../../../node_modules/@polkadot/x-textdecoder/browser.js","../../../node_modules/@polkadot/x-textencoder/fallback.js","../../../node_modules/@polkadot/x-textencoder/browser.js","../../../node_modules/@polkadot/util/is/function.js","../../../node_modules/@polkadot/x-bigint/index.js","../../../node_modules/@polkadot/util/hex/toU8a.js","../../../node_modules/@polkadot/util/is/hex.js","../../../node_modules/@polkadot/util/has.js","../../../node_modules/@polkadot/util/is/buffer.js","../../../node_modules/@polkadot/util/is/u8a.js","../../../node_modules/@polkadot/util/string/toU8a.js","../../../node_modules/@polkadot/util/u8a/toU8a.js","../../../node_modules/@polkadot/util/u8a/concat.js","../../../node_modules/@polkadot/util/u8a/toHex.js","../../../node_modules/@polkadot/util/u8a/toString.js","../../../node_modules/@polkadot/x-randomvalues/browser.js","../../../node_modules/@polkadot/wasm-bridge/wbg.js","../../../node_modules/@polkadot/wasm-bridge/bridge.js","../../../node_modules/@polkadot/wasm-bridge/init.js","../../../node_modules/@polkadot/wasm-util/base64.js","../../../node_modules/@polkadot/wasm-util/fflate.js","../../../node_modules/@polkadot/wasm-crypto-wasm/cjs/bytes.js","../../../node_modules/@polkadot/wasm-crypto-wasm/bundle.js","../../../node_modules/@polkadot/wasm-crypto-init/wasm.js","../../../node_modules/@polkadot/wasm-crypto/init.js","../../../node_modules/@polkadot/wasm-crypto/bundle.js","../../../node_modules/@polkadot/util-crypto/node_modules/@scure/base/lib/esm/index.js","../../../node_modules/@polkadot/util-crypto/base32/helpers.js","../../../node_modules/@polkadot/util-crypto/base58/bs58.js","../../../node_modules/@polkadot/util-crypto/node_modules/@noble/hashes/esm/_assert.js","../../../node_modules/@polkadot/util-crypto/node_modules/@noble/hashes/esm/utils.js","../../../node_modules/@polkadot/util-crypto/node_modules/@noble/hashes/esm/_blake.js","../../../node_modules/@polkadot/util-crypto/node_modules/@noble/hashes/esm/_u64.js","../../../node_modules/@polkadot/util-crypto/node_modules/@noble/hashes/esm/blake2b.js","../../../node_modules/@polkadot/util-crypto/blake2/asU8a.js","../../../node_modules/@polkadot/util-crypto/address/sshash.js","../../../node_modules/@polkadot/util-crypto/address/checksum.js","../../../node_modules/@substrate/ss58-registry/esm/index.js","../../../node_modules/@polkadot/networks/defaults/genesis.js","../../../node_modules/@polkadot/networks/defaults/icons.js","../../../node_modules/@polkadot/networks/defaults/ledger.js","../../../node_modules/@polkadot/networks/defaults/testnets.js","../../../node_modules/@polkadot/networks/interfaces.js","../../../node_modules/@polkadot/util-crypto/address/defaults.js","../../../node_modules/@polkadot/util-crypto/address/decode.js","../../../node_modules/@polkadot/util-crypto/address/encode.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/_version.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/utils/properties.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/utils/errors.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/utils/data.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/utils/maths.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/utils/events.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/utils/utf8.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/abstract-coder.js","../../../node_modules/@chainflip/sdk/node_modules/@noble/hashes/esm/_assert.js","../../../node_modules/@chainflip/sdk/node_modules/@noble/hashes/esm/utils.js","../../../node_modules/@chainflip/sdk/node_modules/@noble/hashes/esm/_sha2.js","../../../node_modules/@chainflip/sdk/node_modules/@noble/hashes/esm/sha256.js","../../../node_modules/@chainflip/sdk/node_modules/@noble/hashes/esm/_u64.js","../../../node_modules/@chainflip/sdk/node_modules/@noble/hashes/esm/sha512.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/crypto/crypto-browser.js","../../../node_modules/@chainflip/sdk/node_modules/@noble/hashes/esm/sha3.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/crypto/keccak.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/crypto/sha2.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/address/address.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/address/checks.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/typed.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/address.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/anonymous.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/array.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/boolean.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/bytes.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/fixed-bytes.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/null.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/number.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/string.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/coders/tuple.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/hash/id.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/transaction/accesslist.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/fragments.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/abi-coder.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/abi/interface.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/providers/provider.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/contract/wrappers.js","../../../node_modules/@chainflip/sdk/node_modules/ethers/lib.esm/contract/contract.js","../../../node_modules/@chainflip/sdk/dist/chunk-QNH6727P.mjs","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/bind.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/utils.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/AxiosError.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/null.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/toFormData.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/buildURL.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/InterceptorManager.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/defaults/transitional.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/platform/browser/classes/FormData.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/platform/browser/classes/Blob.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/platform/browser/index.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/platform/common/utils.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/platform/index.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/formDataToJSON.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/defaults/index.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/parseHeaders.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/AxiosHeaders.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/transformData.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/cancel/isCancel.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/cancel/CanceledError.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/settle.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/parseProtocol.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/speedometer.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/throttle.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/progressEventReducer.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/cookies.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/combineURLs.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/buildFullPath.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/mergeConfig.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/resolveConfig.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/adapters/xhr.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/composeSignals.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/trackStream.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/adapters/fetch.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/adapters/adapters.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/dispatchRequest.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/env/data.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/validator.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/core/Axios.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/cancel/CancelToken.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/spread.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/isAxiosError.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/helpers/HttpStatusCode.js","../../../node_modules/@chainflip/sdk/node_modules/axios/lib/axios.js","../../../node_modules/@chainflip/sdk/dist/chunk-BFEB7XAP.mjs","../../../node_modules/@chainflip/sdk/dist/chunk-J5DGP4KI.mjs","../../../node_modules/@chainflip/sdk/dist/swap.mjs","../src/protocols/chainflip/utils.ts","../src/protocols/chainflip/chainflipProtocol.ts","../src/aggregator.ts","../../../node_modules/@chainflip/sdk/dist/broker-6ZGPANTJ.mjs"],"sourcesContent":["import { AssetCacao, MAYAChain } from '@xchainjs/xchain-mayachain'\nimport { MayachainAMM } from '@xchainjs/xchain-mayachain-amm'\nimport { MayachainQuery } from '@xchainjs/xchain-mayachain-query'\nimport { Asset, Chain, assetFromStringEx, eqAsset } from '@xchainjs/xchain-util'\nimport { Wallet } from '@xchainjs/xchain-wallet'\n\nimport { IProtocol, QuoteSwap, QuoteSwapParams, SwapHistory, SwapHistoryParams, TxSubmitted } from '../../types'\n\nexport class MayachainProtocol implements IProtocol {\n public readonly name = 'Mayachain' as const\n private mayachainQuery: MayachainQuery\n private mayachainAmm: MayachainAMM\n\n constructor(wallet?: Wallet) {\n this.mayachainQuery = new MayachainQuery()\n this.mayachainAmm = new MayachainAMM(this.mayachainQuery, wallet)\n }\n\n /**\n * Check if an asset is supported in the protocol\n * @param {Asset} asset Asset to check if it is supported\n * @returns {boolean} True if the asset is supported, otherwise false\n */\n public async isAssetSupported(asset: Asset): Promise<boolean> {\n if (eqAsset(asset, AssetCacao)) return true\n const pools = await this.mayachainQuery.getPools()\n return (\n pools.findIndex((pool) => pool.status === 'available' && eqAsset(asset, assetFromStringEx(pool.asset))) !== -1\n )\n }\n\n /**\n * Retrieve the supported chains by the protocol\n * @returns {Chain[]} the supported chains by the protocol\n */\n public async getSupportedChains(): Promise<Chain[]> {\n const inboundDetails = await this.mayachainQuery.getInboundDetails()\n return [MAYAChain, ...Object.values(inboundDetails).map((inboundAddress) => inboundAddress.chain)]\n }\n\n /**\n * Estimate swap by validating the swap parameters.\n *\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters.\n * @returns {QuoteSwap} Quote swap result. If swap cannot be done, it returns an empty QuoteSwap with reasons.\n */\n public async estimateSwap(params: QuoteSwapParams): Promise<QuoteSwap> {\n const estimatedSwap = await this.mayachainAmm.estimateSwap(params)\n return {\n protocol: this.name,\n toAddress: estimatedSwap.toAddress,\n memo: estimatedSwap.memo,\n expectedAmount: estimatedSwap.expectedAmount,\n dustThreshold: estimatedSwap.dustThreshold,\n fees: estimatedSwap.fees,\n totalSwapSeconds: estimatedSwap.inboundConfirmationSeconds || 0 + estimatedSwap.outboundDelaySeconds,\n slipBasisPoints: estimatedSwap.slipBasisPoints,\n canSwap: estimatedSwap.canSwap,\n errors: estimatedSwap.errors,\n warning: estimatedSwap.warning,\n }\n }\n\n /**\n * Perform a swap operation between assets.\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters\n * @returns {TxSubmitted} Transaction hash and URL of the swap\n */\n public async doSwap(params: QuoteSwapParams): Promise<TxSubmitted> {\n return this.mayachainAmm.doSwap(params)\n }\n\n /**\n * Get historical swaps\n * @param {Address[]} addresses Addresses of which return their swap history\n * @returns the swap history\n */\n public async getSwapHistory({ chainAddresses }: SwapHistoryParams): Promise<SwapHistory> {\n const swapHistory = await this.mayachainQuery.getSwapHistory({\n addresses: Array.from(new Set(chainAddresses.map((chainAddresses) => chainAddresses.address))),\n })\n return {\n count: swapHistory.count,\n swaps: swapHistory.swaps.map((swap) => {\n return { protocol: this.name, ...swap }\n }),\n }\n }\n}\n","import { AssetRuneNative, THORChain } from '@xchainjs/xchain-thorchain'\nimport { ThorchainAMM } from '@xchainjs/xchain-thorchain-amm'\nimport { ThorchainQuery } from '@xchainjs/xchain-thorchain-query'\nimport { Asset, Chain, assetToString, eqAsset } from '@xchainjs/xchain-util'\nimport { Wallet } from '@xchainjs/xchain-wallet'\n\nimport { IProtocol, QuoteSwap, QuoteSwapParams, SwapHistory, SwapHistoryParams, TxSubmitted } from '../../types'\n\nexport class ThorchainProtocol implements IProtocol {\n public readonly name = 'Thorchain' as const\n private thorchainQuery: ThorchainQuery\n private thorchainAmm: ThorchainAMM\n\n constructor(wallet?: Wallet) {\n this.thorchainQuery = new ThorchainQuery()\n this.thorchainAmm = new ThorchainAMM(this.thorchainQuery, wallet)\n }\n\n /**\n * Check if an asset is supported in the protocol\n * @param {Asset} asset Asset to check if it is supported\n * @returns {boolean} True if the asset is supported, otherwise false\n */\n public async isAssetSupported(asset: Asset): Promise<boolean> {\n if (eqAsset(asset, AssetRuneNative)) return true\n const pools = await this.thorchainQuery.thorchainCache.getPools()\n return (\n Object.values(pools).findIndex((pool) => pool.isAvailable() && assetToString(asset) === pool.assetString) !== -1\n )\n }\n\n /**\n * Retrieve the supported chains by the protocol\n * @returns {Chain[]} the supported chains by the protocol\n */\n public async getSupportedChains(): Promise<Chain[]> {\n const inboundDetails = await this.thorchainQuery.thorchainCache.getInboundDetails()\n return [THORChain, ...Object.values(inboundDetails).map((inboundAddress) => inboundAddress.chain)]\n }\n\n /**\n * Estimate swap by validating the swap parameters.\n *\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters.\n * @returns {QuoteSwap} Quote swap result. If swap cannot be done, it returns an empty QuoteSwap with reasons.\n */\n public async estimateSwap(params: QuoteSwapParams): Promise<QuoteSwap> {\n const estimatedSwap = await this.thorchainAmm.estimateSwap(params)\n return {\n protocol: this.name,\n toAddress: estimatedSwap.toAddress,\n memo: estimatedSwap.memo,\n expectedAmount: estimatedSwap.txEstimate.netOutput,\n dustThreshold: estimatedSwap.dustThreshold,\n fees: estimatedSwap.txEstimate.totalFees,\n totalSwapSeconds:\n estimatedSwap.txEstimate.inboundConfirmationSeconds || 0 + estimatedSwap.txEstimate.outboundDelaySeconds,\n slipBasisPoints: estimatedSwap.txEstimate.slipBasisPoints,\n canSwap: estimatedSwap.txEstimate.canSwap,\n errors: estimatedSwap.txEstimate.errors,\n warning: estimatedSwap.txEstimate.warning,\n }\n }\n\n /**\n * Perform a swap operation between assets.\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters\n * @returns {TxSubmitted} Transaction hash and URL of the swap\n */\n public async doSwap(params: QuoteSwapParams): Promise<TxSubmitted> {\n return this.thorchainAmm.doSwap(params)\n }\n\n /**x\n * Get historical swaps\n * @param {Address[]} addresses Addresses of which return their swap history\n * @returns the swap history\n */\n public async getSwapHistory({ chainAddresses }: SwapHistoryParams): Promise<SwapHistory> {\n const swapHistory = await this.thorchainQuery.getSwapHistory({\n addresses: Array.from(new Set(chainAddresses.map((chainAddresses) => chainAddresses.address))),\n })\n return {\n count: swapHistory.count,\n swaps: swapHistory.swaps.map((swap) => {\n return { protocol: this.name, ...swap }\n }),\n }\n }\n}\n","export { packageInfo } from './packageInfo.js';\n/** @internal Last-resort \"this\", if it gets here it probably would fail anyway */\nfunction evaluateThis(fn) {\n return fn('return this');\n}\n/**\n * A cross-environment implementation for globalThis\n */\nexport const xglobal = /*#__PURE__*/ (typeof globalThis !== 'undefined'\n ? globalThis\n : typeof global !== 'undefined'\n ? global\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : evaluateThis(Function));\n/**\n * Extracts a known global from the environment, applying a fallback if not found\n */\nexport function extractGlobal(name, fallback) {\n // Not quite sure why this is here - snuck in with TS 4.7.2 with no real idea\n // (as of now) as to why this looks like an \"any\" when we do cast it to a T\n //\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return typeof xglobal[name] === 'undefined'\n ? fallback\n : xglobal[name];\n}\n/**\n * Expose a value as a known global, if not already defined\n */\nexport function exposeGlobal(name, fallback) {\n if (typeof xglobal[name] === 'undefined') {\n xglobal[name] = fallback;\n }\n}\n","export class TextDecoder {\n __encoding;\n constructor(encoding) {\n this.__encoding = encoding;\n }\n decode(value) {\n let result = '';\n for (let i = 0, count = value.length; i < count; i++) {\n result += String.fromCharCode(value[i]);\n }\n return result;\n }\n}\n","import { extractGlobal } from '@polkadot/x-global';\nimport { TextDecoder as Fallback } from './fallback.js';\nexport { packageInfo } from './packageInfo.js';\nexport const TextDecoder = /*#__PURE__*/ extractGlobal('TextDecoder', Fallback);\n","export class TextEncoder {\n encode(value) {\n const count = value.length;\n const u8a = new Uint8Array(count);\n for (let i = 0; i < count; i++) {\n u8a[i] = value.charCodeAt(i);\n }\n return u8a;\n }\n}\n","import { extractGlobal } from '@polkadot/x-global';\nimport { TextEncoder as Fallback } from './fallback.js';\nexport { packageInfo } from './packageInfo.js';\nexport const TextEncoder = /*#__PURE__*/ extractGlobal('TextEncoder', Fallback);\n","/**\n * @name isFunction\n * @summary Tests for a `function`.\n * @description\n * Checks to see if the input value is a JavaScript function.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isFunction } from '@polkadot/util';\n *\n * isFunction(() => false); // => true\n * ```\n */\nexport function isFunction(value) {\n return typeof value === 'function';\n}\n","import { extractGlobal } from '@polkadot/x-global';\nexport { packageInfo } from './packageInfo.js';\n/**\n * @internal\n *\n * There are _still_ some older environments (specifically RN < 0.70), that does\n * not have proper BigInt support - a non-working fallback is provided for those.\n *\n * We detect availability of BigInt upon usage, so this is purely to allow functional\n * compilation & bundling. Since we have operators such as *+-/ top-level, a number-ish\n * result is used here.\n */\nfunction invalidFallback() {\n return Number.NaN;\n}\nexport const BigInt = /*#__PURE__*/ extractGlobal('BigInt', invalidFallback);\n","const CHR = '0123456789abcdef';\nconst U8 = new Uint8Array(256);\nconst U16 = new Uint8Array(256 * 256);\nfor (let i = 0, count = CHR.length; i < count; i++) {\n U8[CHR[i].charCodeAt(0) | 0] = i | 0;\n if (i > 9) {\n U8[CHR[i].toUpperCase().charCodeAt(0) | 0] = i | 0;\n }\n}\nfor (let i = 0; i < 256; i++) {\n const s = i << 8;\n for (let j = 0; j < 256; j++) {\n U16[s | j] = (U8[i] << 4) | U8[j];\n }\n}\n/**\n * @name hexToU8a\n * @summary Creates a Uint8Array object from a hex string.\n * @description\n * `null` inputs returns an empty `Uint8Array` result. Hex input values return the actual bytes value converted to a Uint8Array. Anything that is not a hex string (including the `0x` prefix) throws an error.\n * @example\n * <BR>\n *\n * ```javascript\n * import { hexToU8a } from '@polkadot/util';\n *\n * hexToU8a('0x80001f'); // Uint8Array([0x80, 0x00, 0x1f])\n * hexToU8a('0x80001f', 32); // Uint8Array([0x00, 0x80, 0x00, 0x1f])\n * ```\n */\nexport function hexToU8a(value, bitLength = -1) {\n if (!value) {\n return new Uint8Array();\n }\n let s = value.startsWith('0x')\n ? 2\n : 0;\n const decLength = Math.ceil((value.length - s) / 2);\n const endLength = Math.ceil(bitLength === -1\n ? decLength\n : bitLength / 8);\n const result = new Uint8Array(endLength);\n const offset = endLength > decLength\n ? endLength - decLength\n : 0;\n for (let i = offset; i < endLength; i++, s += 2) {\n // The big factor here is actually the string lookups. If we do\n // HEX_TO_U16[value.substring()] we get an 10x slowdown. In the\n // same vein using charCodeAt (as opposed to value[s] or value.charAt(s)) is\n // also the faster operation by at least 2x with the character map above\n result[i] = U16[(value.charCodeAt(s) << 8) | value.charCodeAt(s + 1)];\n }\n return result;\n}\n","export const REGEX_HEX_PREFIXED = /^0x[\\da-fA-F]+$/;\nexport const REGEX_HEX_NOPREFIX = /^[\\da-fA-F]+$/;\n/**\n * @name isHex\n * @summary Tests for a hex string.\n * @description\n * Checks to see if the input value is a `0x` prefixed hex string. Optionally (`bitLength` !== -1) checks to see if the bitLength is correct.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isHex } from '@polkadot/util';\n *\n * isHex('0x1234'); // => true\n * isHex('0x1234', 8); // => false\n * ```\n */\nexport function isHex(value, bitLength = -1, ignoreLength) {\n return (typeof value === 'string' && (value === '0x' ||\n REGEX_HEX_PREFIXED.test(value))) && (bitLength === -1\n ? (ignoreLength || (value.length % 2 === 0))\n : (value.length === (2 + Math.ceil(bitLength / 4))));\n}\n","import { BigInt } from '@polkadot/x-bigint';\nimport { xglobal } from '@polkadot/x-global';\n/** true if the environment has proper BigInt support */\nexport const hasBigInt = typeof BigInt === 'function' && typeof BigInt.asIntN === 'function';\n/** true if the environment is CJS */\nexport const hasCjs = typeof require === 'function' && typeof module !== 'undefined';\n/** true if the environment has __dirname available */\nexport const hasDirname = typeof __dirname !== 'undefined';\n/** true if the environment is ESM */\nexport const hasEsm = !hasCjs;\n/** true if the environment has WebAssembly available */\nexport const hasWasm = typeof WebAssembly !== 'undefined';\n/** true if the environment has support for Buffer (typically Node.js) */\nexport const hasBuffer = typeof xglobal.Buffer === 'function' && typeof xglobal.Buffer.isBuffer === 'function';\n/** true if the environment has process available (typically Node.js) */\nexport const hasProcess = typeof xglobal.process === 'object';\n","import { xglobal } from '@polkadot/x-global';\nimport { hasBuffer } from '../has.js';\nimport { isFunction } from './function.js';\n/**\n * @name isBuffer\n * @summary Tests for a `Buffer` object instance.\n * @description\n * Checks to see if the input object is an instance of `Buffer`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isBuffer } from '@polkadot/util';\n *\n * console.log('isBuffer', isBuffer(Buffer.from([]))); // => true\n * ```\n */\nexport function isBuffer(value) {\n // we do check a function first, since it is slightly faster than isBuffer itself\n return hasBuffer && !!value && isFunction(value.readDoubleLE) && xglobal.Buffer.isBuffer(value);\n}\n","/**\n * @name isU8a\n * @summary Tests for a `Uint8Array` object instance.\n * @description\n * Checks to see if the input object is an instance of `Uint8Array`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { isUint8Array } from '@polkadot/util';\n *\n * console.log('isU8a', isU8a([])); // => false\n * ```\n */\nexport function isU8a(value) {\n // here we defer the instanceof check which is actually slightly\n // slower than just checking the constrctor (direct instances)\n return (((value && value.constructor) === Uint8Array) ||\n value instanceof Uint8Array);\n}\n","import { TextEncoder } from '@polkadot/x-textencoder';\nconst encoder = new TextEncoder();\n/**\n * @name stringToU8a\n * @summary Creates a Uint8Array object from a utf-8 string.\n * @description\n * String input values return the actual encoded `UInt8Array`. `null` or `undefined` values returns an empty encoded array.\n * @example\n * <BR>\n *\n * ```javascript\n * import { stringToU8a } from '@polkadot/util';\n *\n * stringToU8a('hello'); // [0x68, 0x65, 0x6c, 0x6c, 0x6f]\n * ```\n */\nexport function stringToU8a(value) {\n return value\n ? encoder.encode(value.toString())\n : new Uint8Array();\n}\n","import { hexToU8a } from '../hex/toU8a.js';\nimport { isBuffer } from '../is/buffer.js';\nimport { isHex } from '../is/hex.js';\nimport { isU8a } from '../is/u8a.js';\nimport { stringToU8a } from '../string/toU8a.js';\n/**\n * @name u8aToU8a\n * @summary Creates a Uint8Array value from a Uint8Array, Buffer, string or hex input.\n * @description\n * `null` or `undefined` inputs returns a `[]` result, Uint8Array values returns the value, hex strings returns a Uint8Array representation.\n * @example\n * <BR>\n *\n * ```javascript\n * import { u8aToU8a } from '@polkadot/util';\n *\n * u8aToU8a(new Uint8Array([0x12, 0x34]); // => Uint8Array([0x12, 0x34])\n * u8aToU8a(0x1234); // => Uint8Array([0x12, 0x34])\n * ```\n */\nexport function u8aToU8a(value) {\n return isU8a(value)\n // NOTE isBuffer needs to go here since it actually extends\n // Uint8Array on Node.js environments, so all Buffer are Uint8Array,\n // but Uint8Array is not Buffer\n ? isBuffer(value)\n ? new Uint8Array(value)\n : value\n : isHex(value)\n ? hexToU8a(value)\n : Array.isArray(value)\n ? new Uint8Array(value)\n : stringToU8a(value);\n}\n","import { u8aToU8a } from './toU8a.js';\n/**\n * @name u8aConcat\n * @summary Creates a concatenated Uint8Array from the inputs.\n * @description\n * Concatenates the input arrays into a single `UInt8Array`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { { u8aConcat } from '@polkadot/util';\n *\n * u8aConcat(\n * new Uint8Array([1, 2, 3]),\n * new Uint8Array([4, 5, 6])\n * ); // [1, 2, 3, 4, 5, 6]\n * ```\n */\nexport function u8aConcat(...list) {\n const count = list.length;\n const u8as = new Array(count);\n let length = 0;\n for (let i = 0; i < count; i++) {\n u8as[i] = u8aToU8a(list[i]);\n length += u8as[i].length;\n }\n return u8aConcatStrict(u8as, length);\n}\n/**\n * @name u8aConcatStrict\n * @description A strict version of [[u8aConcat]], accepting only Uint8Array inputs\n */\nexport function u8aConcatStrict(u8as, length = 0) {\n const count = u8as.length;\n let offset = 0;\n if (!length) {\n for (let i = 0; i < count; i++) {\n length += u8as[i].length;\n }\n }\n const result = new Uint8Array(length);\n for (let i = 0; i < count; i++) {\n result.set(u8as[i], offset);\n offset += u8as[i].length;\n }\n return result;\n}\n","const U8 = new Array(256);\nconst U16 = new Array(256 * 256);\nfor (let n = 0; n < 256; n++) {\n U8[n] = n.toString(16).padStart(2, '0');\n}\nfor (let i = 0; i < 256; i++) {\n const s = i << 8;\n for (let j = 0; j < 256; j++) {\n U16[s | j] = U8[i] + U8[j];\n }\n}\n/** @internal */\nfunction hex(value, result) {\n const mod = (value.length % 2) | 0;\n const length = (value.length - mod) | 0;\n for (let i = 0; i < length; i += 2) {\n result += U16[(value[i] << 8) | value[i + 1]];\n }\n if (mod) {\n result += U8[value[length] | 0];\n }\n return result;\n}\n/**\n * @name u8aToHex\n * @summary Creates a hex string from a Uint8Array object.\n * @description\n * `UInt8Array` input values return the actual hex string. `null` or `undefined` values returns an `0x` string.\n * @example\n * <BR>\n *\n * ```javascript\n * import { u8aToHex } from '@polkadot/util';\n *\n * u8aToHex(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0xf])); // 0x68656c0f\n * ```\n */\nexport function u8aToHex(value, bitLength = -1, isPrefixed = true) {\n // this is not 100% correct sinmce we support isPrefixed = false....\n const empty = isPrefixed\n ? '0x'\n : '';\n if (!value?.length) {\n return empty;\n }\n else if (bitLength > 0) {\n const length = Math.ceil(bitLength / 8);\n if (value.length > length) {\n return `${hex(value.subarray(0, length / 2), empty)}…${hex(value.subarray(value.length - length / 2), '')}`;\n }\n }\n return hex(value, empty);\n}\n","import { TextDecoder } from '@polkadot/x-textdecoder';\nconst decoder = new TextDecoder('utf-8');\n/**\n * @name u8aToString\n * @summary Creates a utf-8 string from a Uint8Array object.\n * @description\n * `UInt8Array` input values return the actual decoded utf-8 string. `null` or `undefined` values returns an empty string.\n * @example\n * <BR>\n *\n * ```javascript\n * import { u8aToString } from '@polkadot/util';\n *\n * u8aToString(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f])); // hello\n * ```\n */\nexport function u8aToString(value) {\n return value\n ? decoder.decode(value)\n : '';\n}\n","import { xglobal } from '@polkadot/x-global';\nexport { packageInfo } from './packageInfo.js';\nexport const crypto = xglobal.crypto;\nexport function getRandomValues(arr) {\n return crypto.getRandomValues(arr);\n}\n","import { getRandomValues } from '@polkadot/x-randomvalues';\nconst DEFAULT_CRYPTO = { getRandomValues };\nconst DEFAULT_SELF = { crypto: DEFAULT_CRYPTO };\n/**\n * @name Wbg\n * @description\n * This defines the internal interfaces that wasm-bindgen used to communicate\n * with the host layer. None of these functions are available to the user, rather\n * they are called internally from the WASM code itself.\n *\n * The interfaces here are exposed in the imports on the created WASM interfaces.\n *\n * Internally the implementation does a thin layer into the supplied bridge.\n */\nexport class Wbg {\n __internal__bridge;\n constructor(bridge) {\n this.__internal__bridge = bridge;\n }\n /** @internal */\n abort = () => {\n throw new Error('abort');\n };\n /** @internal */\n __wbindgen_is_undefined = (idx) => {\n return this.__internal__bridge.getObject(idx) === undefined;\n };\n /** @internal */\n __wbindgen_throw = (ptr, len) => {\n throw new Error(this.__internal__bridge.getString(ptr, len));\n };\n /** @internal */\n __wbg_self_1b7a39e3a92c949c = () => {\n return this.__internal__bridge.addObject(DEFAULT_SELF);\n };\n /** @internal */\n __wbg_require_604837428532a733 = (ptr, len) => {\n throw new Error(`Unable to require ${this.__internal__bridge.getString(ptr, len)}`);\n };\n /** @internal */\n __wbg_crypto_968f1772287e2df0 = (_idx) => {\n return this.__internal__bridge.addObject(DEFAULT_CRYPTO);\n };\n /** @internal */\n __wbg_getRandomValues_a3d34b4fee3c2869 = (_idx) => {\n return this.__internal__bridge.addObject(DEFAULT_CRYPTO.getRandomValues);\n };\n /** @internal */\n __wbg_getRandomValues_f5e14ab7ac8e995d = (_arg0, ptr, len) => {\n DEFAULT_CRYPTO.getRandomValues(this.__internal__bridge.getU8a(ptr, len));\n };\n /** @internal */\n __wbg_randomFillSync_d5bd2d655fdf256a = (_idx, _ptr, _len) => {\n throw new Error('randomFillsync is not available');\n // getObject(idx).randomFillSync(getU8a(ptr, len));\n };\n /** @internal */\n __wbindgen_object_drop_ref = (idx) => {\n this.__internal__bridge.takeObject(idx);\n };\n}\n","import { stringToU8a, u8aToString } from '@polkadot/util';\nimport { Wbg } from './wbg.js';\n/**\n * @name Bridge\n * @description\n * Creates a bridge between the JS and WASM environments.\n *\n * For any bridge it is passed an function which is then called internally at the\n * time of initialization. This affectively implements the layer between WASM and\n * the native environment, providing all the plumbing needed for the Wbg classes.\n */\nexport class Bridge {\n __internal__createWasm;\n __internal__heap;\n __internal__wbg;\n __internal__cachegetInt32;\n __internal__cachegetUint8;\n __internal__heapNext;\n __internal__wasm;\n __internal__wasmError;\n __internal__wasmPromise;\n __internal__type;\n constructor(createWasm) {\n this.__internal__createWasm = createWasm;\n this.__internal__cachegetInt32 = null;\n this.__internal__cachegetUint8 = null;\n this.__internal__heap = new Array(32)\n .fill(undefined)\n .concat(undefined, null, true, false);\n this.__internal__heapNext = this.__internal__heap.length;\n this.__internal__type = 'none';\n this.__internal__wasm = null;\n this.__internal__wasmError = null;\n this.__internal__wasmPromise = null;\n this.__internal__wbg = { ...new Wbg(this) };\n }\n /** @description Returns the init error */\n get error() {\n return this.__internal__wasmError;\n }\n /** @description Returns the init type */\n get type() {\n return this.__internal__type;\n }\n /** @description Returns the created wasm interface */\n get wasm() {\n return this.__internal__wasm;\n }\n /** @description Performs the wasm initialization */\n async init(createWasm) {\n if (!this.__internal__wasmPromise || createWasm) {\n this.__internal__wasmPromise = (createWasm || this.__internal__createWasm)(this.__internal__wbg);\n }\n const { error, type, wasm } = await this.__internal__wasmPromise;\n this.__internal__type = type;\n this.__internal__wasm = wasm;\n this.__internal__wasmError = error;\n return this.__internal__wasm;\n }\n /**\n * @internal\n * @description Gets an object from the heap\n */\n getObject(idx) {\n return this.__internal__heap[idx];\n }\n /**\n * @internal\n * @description Removes an object from the heap\n */\n dropObject(idx) {\n if (idx < 36) {\n return;\n }\n this.__internal__heap[idx] = this.__internal__heapNext;\n this.__internal__heapNext = idx;\n }\n /**\n * @internal\n * @description Retrieves and removes an object to the heap\n */\n takeObject(idx) {\n const ret = this.getObject(idx);\n this.dropObject(idx);\n return ret;\n }\n /**\n * @internal\n * @description Adds an object to the heap\n */\n addObject(obj) {\n if (this.__internal__heapNext === this.__internal__heap.length) {\n this.__internal__heap.push(this.__internal__heap.length + 1);\n }\n const idx = this.__internal__heapNext;\n this.__internal__heapNext = this.__internal__heap[idx];\n this.__internal__heap[idx] = obj;\n return idx;\n }\n /**\n * @internal\n * @description Retrieve an Int32 in the WASM interface\n */\n getInt32() {\n if (this.__internal__cachegetInt32 === null || this.__internal__cachegetInt32.buffer !== this.__internal__wasm.memory.buffer) {\n this.__internal__cachegetInt32 = new Int32Array(this.__internal__wasm.memory.buffer);\n }\n return this.__internal__cachegetInt32;\n }\n /**\n * @internal\n * @description Retrieve an Uint8Array in the WASM interface\n */\n getUint8() {\n if (this.__internal__cachegetUint8 === null || this.__internal__cachegetUint8.buffer !== this.__internal__wasm.memory.buffer) {\n this.__internal__cachegetUint8 = new Uint8Array(this.__internal__wasm.memory.buffer);\n }\n return this.__internal__cachegetUint8;\n }\n /**\n * @internal\n * @description Retrieves an Uint8Array in the WASM interface\n */\n getU8a(ptr, len) {\n return this.getUint8().subarray(ptr / 1, ptr / 1 + len);\n }\n /**\n * @internal\n * @description Retrieves a string in the WASM interface\n */\n getString(ptr, len) {\n return u8aToString(this.getU8a(ptr, len));\n }\n /**\n * @internal\n * @description Allocates an Uint8Array in the WASM interface\n */\n allocU8a(arg) {\n const ptr = this.__internal__wasm.__wbindgen_malloc(arg.length * 1);\n this.getUint8().set(arg, ptr / 1);\n return [ptr, arg.length];\n }\n /**\n * @internal\n * @description Allocates a string in the WASM interface\n */\n allocString(arg) {\n return this.allocU8a(stringToU8a(arg));\n }\n /**\n * @internal\n * @description Retrieves an Uint8Array from the WASM interface\n */\n resultU8a() {\n const r0 = this.getInt32()[8 / 4 + 0];\n const r1 = this.getInt32()[8 / 4 + 1];\n const ret = this.getU8a(r0, r1).slice();\n this.__internal__wasm.__wbindgen_free(r0, r1 * 1);\n return ret;\n }\n /**\n * @internal\n * @description Retrieve a string from the WASM interface\n */\n resultString() {\n return u8aToString(this.resultU8a());\n }\n}\n","/**\n * @name createWasmFn\n * @description\n * Create a WASM (or ASM.js) creator interface based on the supplied information.\n *\n * It will attempt to create a WASM interface first and if this fails or is not available in\n * the environment, will fallback to attempting to create an ASM.js interface.\n */\nexport function createWasmFn(root, wasmBytes, asmFn) {\n return async (wbg) => {\n const result = {\n error: null,\n type: 'none',\n wasm: null\n };\n try {\n if (!wasmBytes?.length) {\n throw new Error('No WebAssembly provided for initialization');\n }\n else if (typeof WebAssembly !== 'object' || typeof WebAssembly.instantiate !== 'function') {\n throw new Error('WebAssembly is not available in your environment');\n }\n const source = await WebAssembly.instantiate(wasmBytes, { wbg });\n result.wasm = source.instance.exports;\n result.type = 'wasm';\n }\n catch (error) {\n // if we have a valid supplied asm.js, return that\n if (typeof asmFn === 'function') {\n result.wasm = asmFn(wbg);\n result.type = 'asm';\n }\n else {\n result.error = `FATAL: Unable to initialize @polkadot/wasm-${root}:: ${error.message}`;\n console.error(result.error);\n }\n }\n return result;\n };\n}\n","const CHR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst map = new Array(256);\nfor (let i = 0, count = CHR.length; i < count; i++) {\n map[CHR.charCodeAt(i)] = i;\n}\n/**\n * @name base64Decode\n * @description\n * A base64 decoding function that operates in all environments. Unlike decoding\n * from Buffer (Node.js only) or atob (browser-only) this implementation is\n * slightly slower, but it is platform independent.\n *\n * For our usage, since we have access to the static final size, so we decode\n * to a specified output buffer. This also means we have applied a number of\n * optimizations based on this - checking output position instead of chars.\n */\nexport function base64Decode(data, out) {\n let byte = 0;\n let bits = 0;\n let pos = -1;\n for (let i = 0, last = out.length - 1; pos !== last; i++) {\n // each character represents 6 bits\n byte = (byte << 6) | map[data.charCodeAt(i)];\n // each byte needs to contain 8 bits\n if ((bits += 6) >= 8) {\n out[++pos] = (byte >>> (bits -= 8)) & 0xff;\n }\n }\n return out;\n}\n","const u8 = Uint8Array, u16 = Uint16Array, u32 = Uint32Array;\nconst clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);\nconst fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);\nconst fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);\nconst freb = (eb, start) => {\n const b = new u16(31);\n for (let i = 0; i < 31; ++i) {\n b[i] = start += 1 << eb[i - 1];\n }\n // numbers here are at max 18 bits\n const r = new u32(b[30]);\n for (let i = 1; i < 30; ++i) {\n for (let j = b[i]; j < b[i + 1]; ++j) {\n r[j] = ((j - b[i]) << 5) | i;\n }\n }\n return [b, r];\n};\nconst [fl, revfl] = freb(fleb, 2);\nfl[28] = 258, revfl[258] = 28;\nconst [fd] = freb(fdeb, 0);\nconst rev = new u16(32768);\nfor (let i = 0; i < 32768; ++i) {\n // reverse table algorithm from SO\n let x = ((i & 0xAAAA) >>> 1) | ((i & 0x5555) << 1);\n x = ((x & 0xCCCC) >>> 2) | ((x & 0x3333) << 2);\n x = ((x & 0xF0F0) >>> 4) | ((x & 0x0F0F) << 4);\n rev[i] = (((x & 0xFF00) >>> 8) | ((x & 0x00FF) << 8)) >>> 1;\n}\nconst hMap = ((cd, mb, r) => {\n const s = cd.length;\n // index\n let i = 0;\n // u16 \"map\": index -> # of codes with bit length = index\n const l = new u16(mb);\n // length of cd must be 288 (total # of codes)\n for (; i < s; ++i) {\n if (cd[i])\n ++l[cd[i] - 1];\n }\n // u16 \"map\": index -> minimum code for bit length = index\n const le = new u16(mb);\n for (i = 1; i < mb; ++i) {\n le[i] = (le[i - 1] + l[i - 1]) << 1;\n }\n let co;\n if (r) {\n // u16 \"map\": index -> number of actual bits, symbol for code\n co = new u16(1 << mb);\n // bits to remove for reverser\n const rvb = 15 - mb;\n for (i = 0; i < s; ++i) {\n // ignore 0 lengths\n if (cd[i]) {\n // num encoding both symbol and bits read\n const sv = (i << 4) | cd[i];\n // free bits\n const r = mb - cd[i];\n // start value\n let v = le[cd[i] - 1]++ << r;\n // m is end value\n for (const m = v | ((1 << r) - 1); v <= m; ++v) {\n // every 16 bit value starting with the code yields the same result\n co[rev[v] >> rvb] = sv;\n }\n }\n }\n }\n else {\n co = new u16(s);\n for (i = 0; i < s; ++i) {\n if (cd[i]) {\n co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);\n }\n }\n }\n return co;\n});\nconst flt = new u8(288);\nfor (let i = 0; i < 144; ++i)\n flt[i] = 8;\nfor (let i = 144; i < 256; ++i)\n flt[i] = 9;\nfor (let i = 256; i < 280; ++i)\n flt[i] = 7;\nfor (let i = 280; i < 288; ++i)\n flt[i] = 8;\nconst fdt = new u8(32);\nfor (let i = 0; i < 32; ++i)\n fdt[i] = 5;\nconst flrm = hMap(flt, 9, 1);\nconst fdrm = hMap(fdt, 5, 1);\nconst bits = (d, p, m) => {\n const o = p >>> 3;\n return ((d[o] | (d[o + 1] << 8)) >>> (p & 7)) & m;\n};\nconst bits16 = (d, p) => {\n const o = p >>> 3;\n return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >>> (p & 7));\n};\nconst shft = (p) => (p >>> 3) + (p & 7 && 1);\nconst slc = (v, s, e) => {\n if (s == null || s < 0)\n s = 0;\n if (e == null || e > v.length)\n e = v.length;\n // can't use .constructor in case user-supplied\n const n = new (v instanceof u16 ? u16 : v instanceof u32 ? u32 : u8)(e - s);\n n.set(v.subarray(s, e));\n return n;\n};\nconst max = (a) => {\n let m = a[0];\n for (let i = 1, count = a.length; i < count; ++i) {\n if (a[i] > m)\n m = a[i];\n }\n return m;\n};\nconst inflt = (dat, buf, st) => {\n const noSt = !st || st.i;\n if (!st)\n st = {};\n // source length\n const sl = dat.length;\n // have to estimate size\n const noBuf = !buf || !noSt;\n // Assumes roughly 33% compression ratio average\n if (!buf)\n buf = new u8(sl * 3);\n // ensure buffer can fit at least l elements\n const cbuf = (l) => {\n let bl = buf.length;\n // need to increase size to fit\n if (l > bl) {\n // Double or set to necessary, whichever is greater\n const nbuf = new u8(Math.max(bl << 1, l));\n nbuf.set(buf);\n buf = nbuf;\n }\n };\n // last chunk bitpos bytes\n let final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;\n if (final && !lm)\n return buf;\n // total bits\n const tbts = sl << 3;\n do {\n if (!lm) {\n // BFINAL - this is only 1 when last chunk is next\n st.f = final = bits(dat, pos, 1);\n // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman\n const type = bits(dat, pos + 1, 3);\n pos += 3;\n if (!type) {\n // go to end of byte boundary\n const s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;\n if (t > sl) {\n if (noSt)\n throw 'unexpected EOF';\n break;\n }\n // ensure size\n if (noBuf)\n cbuf(bt + l);\n // Copy over uncompressed data\n buf.set(dat.subarray(s, t), bt);\n // Get new bitpos, update byte count\n st.b = bt += l, st.p = pos = t << 3;\n continue;\n }\n else if (type == 1)\n lm = flrm, dm = fdrm, lbt = 9, dbt = 5;\n else if (type == 2) {\n // literal lengths\n const hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;\n const tl = hLit + bits(dat, pos + 5, 31) + 1;\n pos += 14;\n // length+distance tree\n const ldt = new u8(tl);\n // code length tree\n const clt = new u8(19);\n for (let i = 0; i < hcLen; ++i) {\n // use index map to get real code\n clt[clim[i]] = bits(dat, pos + i * 3, 7);\n }\n pos += hcLen * 3;\n // code lengths bits\n const clb = max(clt), clbmsk = (1 << clb) - 1;\n if (!noSt && pos + tl * (clb + 7) > tbts)\n break;\n // code lengths map\n const clm = hMap(clt, clb, 1);\n for (let i = 0; i < tl;) {\n const r = clm[bits(dat, pos, clbmsk)];\n // bits read\n pos += r & 15;\n // symbol\n const s = r >>> 4;\n // code length to copy\n if (s < 16) {\n ldt[i++] = s;\n }\n else {\n // copy count\n let c = 0, n = 0;\n if (s == 16)\n n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];\n else if (s == 17)\n n = 3 + bits(dat, pos, 7), pos += 3;\n else if (s == 18)\n n = 11 + bits(dat, pos, 127), pos += 7;\n while (n--)\n ldt[i++] = c;\n }\n }\n // length tree distance tree\n const lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);\n // max length bits\n lbt = max(lt);\n // max dist bits\n dbt = max(dt);\n lm = hMap(lt, lbt, 1);\n dm = hMap(dt, dbt, 1);\n }\n else\n throw 'invalid block type';\n if (pos > tbts)\n throw 'unexpected EOF';\n }\n // Make sure the buffer can hold this + the largest possible addition\n // maximum chunk size (practically, theoretically infinite) is 2^17;\n if (noBuf)\n cbuf(bt + 131072);\n const lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;\n const mxa = lbt + dbt + 18;\n while (noSt || pos + mxa < tbts) {\n // bits read, code\n const c = lm[bits16(dat, pos) & lms], sym = c >>> 4;\n pos += c & 15;\n if (pos > tbts)\n throw 'unexpected EOF';\n if (!c)\n throw 'invalid length/literal';\n if (sym < 256)\n buf[bt++] = sym;\n else if (sym == 256) {\n lm = undefined;\n break;\n }\n else {\n let add = sym - 254;\n // no extra bits needed if less\n if (sym > 264) {\n // index\n const i = sym - 257, b = fleb[i];\n add = bits(dat, pos, (1 << b) - 1) + fl[i];\n pos += b;\n }\n // dist\n const d = dm[bits16(dat, pos) & dms], dsym = d >>> 4;\n if (!d)\n throw 'invalid distance';\n pos += d & 15;\n let dt = fd[dsym];\n if (dsym > 3) {\n const b = fdeb[dsym];\n dt += bits16(dat, pos) & ((1 << b) - 1), pos += b;\n }\n if (pos > tbts)\n throw 'unexpected EOF';\n if (noBuf)\n cbuf(bt + 131072);\n const end = bt + add;\n for (; bt < end; bt += 4) {\n buf[bt] = buf[bt - dt];\n buf[bt + 1] = buf[bt + 1 - dt];\n buf[bt + 2] = buf[bt + 2 - dt];\n buf[bt + 3] = buf[bt + 3 - dt];\n }\n bt = end;\n }\n }\n st.l = lm, st.p = pos, st.b = bt;\n if (lm)\n final = 1, st.m = lbt, st.d = dm, st.n = dbt;\n } while (!final);\n return bt == buf.length ? buf : slc(buf, 0, bt);\n};\nconst zlv = (d) => {\n if ((d[0] & 15) != 8 || (d[0] >>> 4) > 7 || ((d[0] << 8 | d[1]) % 31))\n throw 'invalid zlib data';\n if (d[1] & 32)\n throw 'invalid zlib data: preset dictionaries not supported';\n};\n/**\n * Expands Zlib data\n * @param data The data to decompress\n * @param out Where to write the data. Saves memory if you know the decompressed size and provide an output buffer of that length.\n * @returns The decompressed version of the data\n */\nexport function unzlibSync(data, out) {\n return inflt((zlv(data), data.subarray(2, -4)), out);\n}\n","// Copyright 2019-2023 @polkadot/wasm-crypto-wasm authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n// Generated as part of the build, do not edit\n\nexports.lenIn = 171008;\n\nexports.lenOut = 339468;\n\nexports.bytes = 'eNqkvQmYXVd153vuuVPVvTXcmqTSfOpKtmVbskaXJMvYugU2Tuj3mi8vL1++9/X3ZNmSwSXjoSxseJ9iF1gy4oUEhZhEBPIiGhLUEAUxBTkhIIiTVhN3EMMDAaYRgQR3QkDBdMeAg/v3X2ufc4caNCDZOvuss/faa6299tprrz3caNeDr8lFUZT7x9yK2+NHH41uzz+qf3P8z2vuUXvnkdM/BdJ8KOrBs2RPEhHfwgupsqeyjGlBx/LI7ZFV8ohX8Aj/kuwOZVSqkqVVpKv5IUUsqh4JxD1ihD5iGR/xP8IQknop2oszRnW5R6L4Q3FX/uE7XrVw586H77j73t2v2nPvzrsf3Pnae3fvuevue/fsjor6urjl6313TO65c9/O3VP33b9zas9dUawMS5ThVTsf3HPPXTs33LFl16Ztezbt2rbxzm2bt90ZdSvHMs9x59Tr7993385t41vv2rBly8aNW7fs2bj7rvVezZWe51V79v3Srnt33/eaX9l1z2v3PLhz16bdmzbfsfmuPXs23blx6/g2z7zcM0/teeC1d0/t2Tm+fvPWTVs2b9x6/aaNu7Zs2hTl58F41/V7NmzeBZ13bt2zbdv1u6OcMl8RMFrOW+++557/4/X33rlz9/V37N64e/z66+/afdfG68d3kfej+Q/nc4ND0XCUy5UquahciXO5fBTl40JcLhWrpRzwqNpVKpe6yiPFXCEq5/LlXFcUlaOoiobl4q4oF+UKPZTJ5ytV8itV6MnF5VxUiHLFaEGuDDRfWDha0ZO3PNBSFFMuKuejGDSCUTJXjEGZ6y5EXbl8UXAIiCKl+Mj/+VIpjhZFfC4BjnMl/hapL84VQaAC0eLY/kTF/oiPUbREKKElzvG3J5+v5cVfvisqqL6oUCqCNtcPQbmoV50GzHEZoniPCvluaIyEJ1oqpkvFckmcliE8N5CjbK1Y6h2QxGCBz6qHF7gqUSHFomVxnC/Eue7e7jgGxif4MRpzRaTQnSdV4v/8csRL+XyUL5AB1Ppj/ZgKKVPs6+vLFxFYoZi7P/eKV8ByNFTqpvs1pqdPRdXyW8vXlF6z5zX3Tb0+jgb3vG7fzjvuvn/TNnTm3j1Tu/btiV463ASiunvu3Yfqvz763dxoG/w1d997Nx3gzqk9+6LbB9o+PbiHjjTcgvuhXffcvVu4f6km4J7dO++auu81nu+xXDXAHrz7VfdGK3vD20N7pu6+6/XRgH29455de/dsvCO6tl9vr37Nrjt3PvjqXahntLYNcv2GjdHBnKHYu+fOO3ftVZaHW96V4R25igD337EXDY9+398etJ4abfAXx/1b4ZPj/aNcl972PXzf66LVI/Zhz53377z/tXfsvPO+19w/tefBB6P35IbaPux53f30ruhIzoRh4Cbn/7cJw4BTe+68D4aj7UaqgUwa6xfb+9TO3UjjoT0w8fr7d909tfPVu6Z2R+NzfHzwvrv2Rcmi9o9Qc8/dyEjfbvKKp1po+RUTMyCr9honYypthJGe8L7rVVN79kTb7PWhqbs8d6UvfQ3Ze1ZOvfbBfeICKe7dsPOh9Ts379yAlO7dp5yojHThULxq3my79zyI5r0++v14/az5sNi7XnvPvp0Yrj2v2nXPzjt33XPPHbvu3LvzrnujD+avm7fMnqmp+6Y6SqxoMfq7du82Rd6nr/ffdzcUTUV/kO9vyXKXJHEwP9ACeg347rszOh0PtgBh1qDfi4dboHtedy/Y75vaE/1uvvutGKVGrvqLJ/OH8x/I/4/c7+WP5L8eH8k/mf/t/P/zQu7J/Nfi34yfzN/7yifyJ/IfwhjfuvPJ/ENP8n3zb+Z+zPd35v84/288t/5fJ/IfIcfvkO/J/HH+fzL/Z5Rc+mT+z3k8nvuD3AmseZrhG/GbKPRU7uNAnsx/O/ex/J/mpz6Y/2C+8vUjlQ/nn7spd9ujSZREq+Pb65UknhyPb0+iRjI5dktSadz8wFglvyOJG6eipLK3fvMv3FLYkVSSWyaTXHJz7c7FXvBX65XG6D6yd+3D/LxQfmBK6Yca0z/LP0Bq9KGpqXpeGf/DRWQsNBY9nBQafQ8/yL/5hx6cVMGXXURBiFkdJxeRcVQZV11Exj6R0mek9Bkpk0m+0f8w//QCyjcqgOpFYbvxIrCNKOOOi8i4QNUusGoXhGopufkiSm5Sxq0XkXGzqthsVWx2IeetkldeRNl1yrjmIjL2KOP6i8hYETUVo6bSZPi2ekklSy0lSYeSfFLJ9cq4+iIy9qqKXquiV1UkfVRSUGMWrDEL3pglQUoGKTmkLEjZIGWHdAnSZZAuh3Qbvb9cr4qMagsZpAMZfBIZ14uM642M642MdZNJl5X+dxdReoNKb7DSG6z0+smkPJksFnixgRcbeMFkUppMRgQeMfCIgTfD8WSySeBNBt5k4Mpkcv1k0iNwj4F7DNw7mWyYTIpitmjMFp3ZqiBVg1Qd0i9Iv0H6HTIgyIBBBhwyJMiQQYYcMizIsEGGHbJQkIUGWeiQRSJqkRG1yIjKC5A3QN4AUD4wmawTeJ2B1xkYyvsnk/UCrzfwegMvnkyqk0m36um2erq9niWCLDHIEocsFWSpQZY6ZJmEAb6i4SsaPsQ5NJksU95llneZ510OYrJ2W9ZuyzqAvnUJ2GXALgNCI2jLApcNXDYwNC6lCQUuGbhk4OJksmQSQVDbIqttkde2QpAVBlnhkESQxCCJQ8YEGTPImEPqk0iZGhZaDQutBmodm6Q5AA8beNjA1JrAqcBDBh4yMGq/AvELPGDgAQOjz4sQv8D9Bu43MIq6EPELXDVw1cAo6vBkslzkLTfyljt5KwVZaZCVDlklyCqDrHLIFYJcYZArHHKlIFca5EqHXCXIVQa5yiGrBVltkNUOuVpEXW1EXW1ELRNgmQGWGQDKr6BRBF5q4KUGhvJVNIrASwy8xMDoxMrJpK566lZP3eu5RpBrDHKNQ64V5FqDXOuQNRIG+JYbvuWGD3FeOZmsUd41lneN510LYrLWLWvdsl6Bmo0JOGbAMQNCI2gTgRMDJwaGxmtpQoFXGHiFgZdPJtdMIghqu9pqu9pru06Q6wxynUPGBRk3yLhDtgiyxSBbHLJ1EilTw2qrYbXVQK1bJmkOwFcZ+CoDU+s4nAp8pYGvNDCKeh3iF/gKA19hYBT1asQv8CoDrzIwiroa8Qu80sArDYyiXjWZrBV5a428tU7eRkE2GmSjQ7YJss0g2xxygyA3GOQGh2wXZLtBtjvkRkFuNMiNDtkhyA6D7HBII7kxuSHZmKxJrknGkhXJwmQo6U+KybpkAT6VeSVL6y/Xo1YfbSx+OBltjFB6tFF+2L2g0fqEHsP1lwB9IJlgoGwc+eaxJwqT9UF96KnfNlnHnPcko5NJb/KSyaQvmZg03C958AH+Jy28FcNbMbyN33rzN95cnqy/VAi66rdOMmxTgOyjZO9R9h7L3uPZP3Tohc8X9tZfpuyF+k2T9V6y95C9QvZeZe+17L2e/eunj304t7f+C8oeQVu9BnW9ZO8he03Za5a9FrIf+Ppn85P1X0xuBetNU2BNbjKPYbmoHjKqK5LG4GS9D67BkYyIV8a2nmQTcNI10Pcqj9APGvpBR/8v73nqc8VJ3KRK0jcFZj1B3yf0fYa+z9G/FDFM4rHVkkGQ1YCMCNmIIRtxZM/85A3fL+2tb6ZikFVgyZD1CFmPIetxZC9DSGJ8MBkB2eCsjH/gM7/5vuJeWgHpQJCQ9YKsV8h6DVmvI/sFZ1x8g2xkVjafff+3PhWrjXpFWQ/SmIPNXzQ2cRcGNWLW5E+MaJBc0ML4AqFfYOgXOPo3/OlvPJGbxN82xnvnZnxTxviCORn/5K//9bvjSZzKCzG+OWNcyBbMyvhf/vRDx2jf9Rdk/GLa90d/9uO30zE2XJBNb1+kWJAu5tFN8OKYLGhp8ZlSfOO7Dv64vBeGLsT44sk6XaKPlhHjavE+IeszZH2O7Ks/fOu70cURagcZjPMEWV7I8oaM2YqQrZusYy3gJJPizC7+lt8//Fx+b30BSArGOE+QFYSsYMjwloVsPbMfGQDQgaxvVgPwqT9+29cxAIsRThGCHtATZEUhKxoy/Eoh22Bs1nCH5HpWkx48ILx0RDmfwfjJ+cffCPo+aAR9QbQK/UzGMRgwXmoxDyUhKxmykiP76z9//GeRpGOMF+dmfMQYL0OgkEl9ykJWNmRlR/b0X374KIrde0HGFxjjVZCVQVYCUhWyqiGrOrIfnH3vD0BWuyCbKAts4ld2y4ssyzkuySPrJ10FfZk8/ULfb+j7Hf373/yFL1Js4IKM0wNhvETz9IOsOqsUn/niZ/6eTNULMk4PhHFJUcj6Z5Xi137rHz5OJ+y/IOP0QDjoapFil5B1GbIuR/Yn33j8k/SSoQuyWTM28W+75BKX5eeV5AV3k+4KUuwW+m5D3+3of/u5k5/Ehg9fkPEBY5x2SbpB1jWrFE+eeO5Fxlk1yfyMV41xSVHIumeV4pPTv3cQZNULMt5vjM8vxd949sXTmIf+C7I5ZGyaFPEpy3JjS5rvzC/FJ7/xrS8weKmR5md8OPTo+aT4+b/+T+NMNS/INy0SOvTcQvzuF977boa9gQvyTYvA9/xCPPj2Z/6CDq0WmZ9LWgQuTYi48WX5tyV57vML8eRnvnce9Oo28zNOG1mHnk+IL3z9Q/8dGoYuyDgtEjr03FL87d879w5qVJPMzzhNcsEO/aV/+E/HShdjt2iStEMzkyprTlHSjG5+Kf752499BONzYUtGI12wQ3/hn3/0L4z3F7ZkNMkFO/RP/+jj37soS0aTXLBDf/NPpv/xEuyWSZE5VlnzuJKmVfNL8WMf+Z1Pgf5iLdn8Ujz83z//zxifi7Vk80vxG8/87VOXYMnml+J3P/jR5y7BbpkUmdeWk7WSIlPZ+aX4zHPv/BvQX6wpm1+KP33iP38zUpNcnCmbX4rnT73/MezixZqy+aX4O2/87f8Ksos1XCZFYgnlZJukSPhgfikeOvuNfwH9xZqy+aX49Pff/WcY2Ys1ZfNL8WM//swfUuPFmrL5pfiRd5w/bT7lxRkupHiNAibXWMDkGguYYCY3TiZbFcTYakGMrSHYK2+ynGyXuIntzC/uz37p7/4nnC+8SJs3v7g/98Rzz8D5xdq8+cX93Def/DQjx8XavPnF/f2Dn3wv48Sii7RwiHuNxL3GxL3GxI09vYFwnMDXGvhaA2NcUeyZAfaZQfgBb5cdahfFuOdtlx/89dv/CoJLFxTlwiDKZrvMFOX33vrfvsrAtvCirWg5a5eZonz+p99+B8gu2orOy+bj0wd+wih5YZu5yNisJi9n9XMpa5q3XZAXdKeTpnaSTXadNbUT4kasA3V7zcZnCapYS0smKLZWGrLWNGStaQgDB31x5oLLgALu1ZaGmzmpfPsfffIbDMwy8NRA/JGoWzEpGQ88bRkN4kpGHMth4pvMeTJ3kfklkLiWUDAEXWcEXecriUw+GyKnYeQ0jBxXTuakc3bIN598xyGmKBogwD8M/ptgF2JMWiJmpg6QuUDmApmvI3wLIRuNkI1OyI2zyEWLFtJAEaLp60wN/M3f/LOncQrKiGB0Euw1sFe84UpZw81UIYkwSuLk5r1jsRbHJ8dyjWis0pOrVpO4uWges2herf7edfE1j5RYdm8cZjRak0RX57diPnispx9FjZNA116dj+pX8HKEl+v0cvX+/fWl+5OlEz/+zPPv/K33fOT816ODE8mb60sn3vq2X3/T186+8ezXol8j0nLFwYnVb66P7K8vS5YenFj/Zvr54v2seo8cnMi9uV5XNavrqPnV+USL5o0TVLBOFVyZrNFjFfWM7IdYCvzTTx7/2qc+9j8/vcJqWj7xgfNf/NEHv/+Jj9+4v54kV1pFS/Zrcf/q/O31HAXHlHy1ytcJcpMe9Rpr9ZVUdUzsqo6reDnEy3q9XEO5FfuTFRN/cPbHX/3Mb33tje981KpbMfFXH/r/v/q+Dz7x9FMwVk6usvoK+9mnAD0w1mXZuoW/y2uO6ivAfBTMG/SyWrDpXP1aaliwXy+ncsmCgxOfP/h7P/jJ55540+ddggsmDr3tud9/8ekfH/jHaD8r+qutong/0RsyU1E1KQLfX++zDz37icSA6zbhzCfLLUs+SfbT65aYkJfQ3mR4ZX05FVvyV+vJ/mQJkfhKUrU6R/fXyQu2yn7QjxqOwQRh9icVxxFKvo6slGRvRlK0D8VkmeD3k0NtzNd8ssxwLpM5pDn2S30NOW9kN+SxZTFVNjSECIVmR30ZaAqJsVJISparlAyAJhV3r6CmR2DmvwH7MLQfywpT3UnNvnYnfQgo6THkPXSfEfAWk4X7ZUwC1n5ByJEKMcUr6aYlJYFF+4n6mRMYSK2iwqJymVPZbfjyiKQMr3wwlN3763EC1WoNy1CVPAwDQUVku5/RZ/l+AZNBy1AWzeSgcK+IL1thEyL/OaGDIoh+V0mG7WtFshlIhgzvECSsAG+crNwvagJW44ccrkVDGV6D0xCUBD7shYYhp9dgXUQ7lxq2uj6gB2mLmdwLYsYb1T6KGMvSSxZEYpLqS8bA0J3kJClcoM72REh9He1J+/GBHMMSPLG9oPM0RY8EBd5ByBk1yujZcdaexg85nM/B9vbM+OyHJAqpPVMqc8mQUUm3Bxi6hFqW3qAOPld7mgjAUIDPxNoTjSh4M5vkodmVASE12xOU/OftiQ4OiYve0J5EhKWKKDV4B6Czbnyitx3t6WoPP4ytc7QnQld7Nqlk6cOoXCwqrZnBV4Bn+ETyzqe1J1SDkn9ntKdsSDfa29ae0HyB9kRvh1VvVYrYbE8aF7z90Cn5xcLb0Z7kcD7752jPITVbzOplk8oBk1q3Gvqy23ORSQo7dGntid4OqSN1tGdTb71H0e872rNFb+dqT8TX3p791guC1l1me640SaFfl9ae6O2wSnW0Z1NvpSfqpZ3t2aK3c7Un7LS356BJrVv24LLb0zUfVbm09kRvTcE62rNTb62rtbVni97O1Z4MV+3t6XrbJXtw2e2pcSVo/qW0p9lbWqujPZt6q3E5jASXZm+HvFO3tmc/miMq6QWX3Z7S2y7J/TLsLQTNaW/V79VLL8Pe2mDUbm81+gUrcpntKU+jW6gvw95S75z2VniDHbpUe2t+Qru99VHenL/Las8cro8khdwvw96iBXPaW2la0NtLtbfmJ7TbW/WCLnXcy25P+WfBkl2yvcUwzmlv3U+gxS/d3ppz0W5v1QvCKH+Z/VP+dpDUJdtbSs1pb93vs6HwUu2tKUG7vXUrQi+47Pb0kck8x0u2tyjYnPbW/XgbCi/V3ppw2u2tjwo2q7rM9lQ/6lIPvwx7i7bPaW+lJ7K6l2FvTW/b7a28jmBFLqs93Q51y8Rdhr1Fwea0t7KQYVy5VHtrzkW7vZUd6lZDX3Z7uqTg8zLsLfXOaW/lZwU//lLtrQmn3d66FTGv7TL7p+xFtyzKZdhbBD+nvfVxxfT2Uu2t+Qnt9ta9cPTnsttT9qJLFuUy7C12YU576368uaqXam/N+eeR0TmK5soSFfYb0NtzNGtPJ5U0dsZQ8i8Z0KlMVgvgVLqf329AlzwbBPfXSVIYLJg5K7wgKQElXmQfiKzUxMXCrEUXSjpJ0FzFpqVrNA072wzriPhZoMZII1dEICnHd8GdI+BVD1MYMUAWobXyrRbLdi+ivsWGbRH8EmRbyAdDSHpZssgQ8q+pz3KCOgsNx0KUQHJiXFpIaxLSI8NChfRIUpjEEmU1LpYrH9ri0RiFn5JVBzFkixRnzUmSRtUSs0D03EXaVRloikO0bHFCwIkY7VhK25KUNkoB3ZLnaJXH49KesgqM1x7ky3SOePdKjfhW0wjxQOkifXYE6j1Uu1Ay4zvIV/Ipo50qR5KrCc4uT5LQvkUbUTEFuWSxIsaUzvGuRqE0LNVVaZSsJ0Pd0OQoQYYVyTX+ZS0sXnEQua0SSgOt0daAgygdDAbQOspfeRAaV2agDdC7+qBX66DqD9fFxUdHH1kZNc4v21vvXhWxmnOMTc2Knb8vppm6V8d/XKnnxuOPVvztWKUej8cneGscJSO9OMv43ko9Px5/ImQ8WqkXxuOTyniEjIQls4zvqtSL4/FTIeORSr00Hp9SxsNkpHdnGZ+o1Mvj8dMh4+FKvWs8Pq2MZ8jIrLT2+qR7bXSmUtgRVVUPS369jahxLqq9M7cYwPMAQvZGbqqe42SdztGRk01n1aRS+3sqapxl355/Gsux5fnfPvGXUaOv9hdKP33ss1FDmpGvvUtZn2URiS3bjTO5gIedjjFbOU/7u6j58MgN0d8NKb0ud2Jke+4cUcvGr/8FOCu0UtHxnGRToxZgy7XvE1wkQ4rwkDag0t0qtbuB56j3FqCn2WJeqb2gkoe0SsiazCkrAMpQtNJ4E2eRG921t2FuGoeVLqoxRydrb5HRRRgDrJocUiXJePwWPU8vYU2H3O+0ktT1SSwwDfqL4pRvvNVu4/t7/XssTDLbRSPq0NJmjuPKUfYclcbb9cZo1Dg5YLVXGh8VhOWxxrOs/lkuSKN8mW+fMFpr/8XkC0wrRrna7zopB3JAz3Nupfvq/KHF9b6JaOKf/+ubnvzy736hPBHVTqjMNGtvgn/t9B98+2tf/n4uhZ8CTqnDi+v9s5Q6HEq987Nf+erPXnwxg58Brvyd2A6zqAa2I4vrtVmwHQ3YXvQ/GfxcwNZZy1GwCU9nLee8lqOL6wOz1HKirZZ8Cj4fKums/ESopLPy88CFvrPyEyzXUfmxOcSsja0zKz8VKumsfBpkqqSz8lPAZ2utM214MvSHA5pO9GcCmhmCbcufoTkXsneiOd8Gb2Z3hTtfQnXe+cLn3/ahj/7n+JGs8GMun/d95bt/+O0jTQYoI/gb/uZjf/uvf/WTUsaw4zpVxmPgOc0IVlPiDGP3AIMpyXMlre/0T2w+xPvQLx9XRyhNsqSmXmsJrahN9Dx+AG9mVoJMwzsIOhwI+vFffDHKmhiY8nYSOe1EnikzMqrPQOSgJXAARiwBtaNKnCCxyBgqMcBB9mKRjRvwKyL7tJPNgg2vTIMMeNaBtWTYWDtdDqwdssR+/iQLQKIEy6vG5cCsXFrP6+DyaOColcvzHN5T3k4uzwGXuMv4JuplcImhJgGX1jjnSCwwCFzipaACOEmYStqtxEFDZgcrxO7yZIVxdihldxGcjSaLDHjSgSPJqL0e8VdOJ/hrV3hdYsI4mwrjSCYME8jSVCCJC2RwVoGYkegQyInAfKtAzgBT3k6BHHWBnC+zXqy2RSDW2ieQg7X2eRLW2idwz5egTmsely8iAILh5CU6Q2KFCa/IqjD+dl0SGkvqxu6zxcDuYthNteR5By5IFtoru0r1SjzPi7iEhpJh/5q+LvOOkQrsWJvAEFmSimxsPpENzSKyU0E8rSI7DEx5Z/SUAG/Ja72hi5V3qUmqStMIzFTpFImFqKgkZ5p0CoGZ/h0mkZi2FXE3kdwVktyq5ArnO5XcCvhOFe6sA5cmy13V/HVJspRXfGAHdhswVcfnXX6pOp5MX1eaOJ9PxXmyXf/6JoZNmCTHUrkucbn2NaW5hTHZ+T/c7WpxBv7NcpyBbY78GNumStNwu0gLidS7LEm8Mzj9zCXcevirq0mqHaednVQ7DqWvdTcmzg5wSwSS+5vULzHqzXrC1OZDnQwcDgyc6/YOfxS6+9EG0T2sdbKWnn3I6XNRph36rBPEGo4RdMRfgWcEIQUnJ5g5NHMOYo6ImCHq9m54Hlpq0CC72W/dgZUF7wVpLccsAeoBqyMZ9Br656rhqGroS2pg4VCbq4DjGnIEGoX278+Kb8EdkJiXyVfLN84c+HRU+zBuKU66u2a5eV2zeA7XDPg8rlkoNcM1Az6ra8Z1CvO4ZgHbDNcsYJvhQYBtVtfMa5nLNWurpemahUpmuGahkhmuGfBZXTMOv8/jmlFqNtcsVDLDNQPZrK4Z8FldszY8TdcsoJnhmgU0MwTblr/pa4XsM1yzNngzuyvc+dyluGaUmdU1c1yn4mCyieq4a8aMPHXNcjNds1zqmlnislyzQFCbawZsVtfMiTwTB9fMQoxKEKRw1wxq3TUj4a5ZbjbXzMnucM0cmLlmcWpNLfHzumaBozbXLJrDNQMuccfBNbNAohJw6a4ZCXfN4NIs9f2pZ5abzTNLuW3zzByYeWb+mnlm+XbPLJXFkUwWP6dnxoHfGY4ZbM/mmHHwSEoeB78MabhfhhDcLyPhfhmRzja/bH1wy14ZvLLbZ3PKotmcMgdmTpkLJ3PKXDiZU5a+BqcsldWxNln9XE7Zjr0zfDLOq87iks3qjuWDO5aqzzRycneMRJs7tiN4Y8RYzRlLZvHFVs/mirm8Ulds62yeWKHdE3OhZZ5Y+ho8sVSGJ9v17ZI9sULwxGDdPTE4bvPE2HXZ6YiNtvthzlqHH+bMZH5Y+hr8MGcGuCV+Dj+sEPwwqJ7LD2v1aDM3zOnJ3DB/BZ7Rc/luGKTM4YaltRyzxM/nhjmued2wQ7hhOF8tbphCZSRoAM7O5mu7CZl91Wyvjn42Ti0VTsV+kYhBTrZADhvkRAvkhEHOtEBOGuRsC+SUQc41IeaYLEUB6UZKnyZ9bBm0peHWSu0rIul5zpcTtwxhVjbgT+f1tUgI0FOlrESPSlRrjytMeNQuETq/qEnBMYM83wI5YZDpxU2aYksdUVT4MIfbYWqkmf2QQU63QKYNcqoJESMnR7bknxeGo/b1XEv+YwZ5tgVywiDn2zGcBcORHokRAitZ9PkQ4ehzxJVrn6flVsdvqSAQnocqnOMndn0nm9ohrzJZe6sEcCpNnEwTJ9LEuWg8ngZ/QoD+BShNCM0bxdPExyu134lZ1ZDxqziN55dNroqqH1sZX/PoMsX8p9l6HxPztxvorm786LNv+GpprNT48NcO/U15rLvx/dNveEd+bFHj789/+tdLY4ONythoSFfCt8Uh75JQdih8r4bvS8P3ZeH7cPjeE74vD99XhO/c2iYDvH2sAU1mdOs3jk0k2ycY828deykJRsKXj72MBNbtNm7Nu7G+pn7d2Ebf9L5l7CWUM1tW3zp2U7Klvnns+mRr/eaxHb5dfcPYNjKY+aiPj92QbKivHVuXjNfXj23i4r1RTg5sYp1l0/u45uk49mXTRHKI9MjxieTxA8nGg3UDNGoPMyzv8G9lfaOEgKuSHUCuOH4gzdjzMOF1Iv2GwBALtIIro44fSFYdT1Ya4jR3l9ByUChDCYAByDAm0FNoy10GEeeT6wURqgs91lF3j4andU7Zcqf6loN1A4jAkeR6/5ZYFesM2JtcD6RLVHtGSGSbfUBgiAXS1SXQ0Ut1gQ7PDZEjoiNDCaCXEyjCmEBPPs1tJOsWAqdr5DgS8E9GlAswQ9QFVQKBqM/Z72nLLYp0PsZFW1BuSVsNdyDp6sRtkkwmLS85eU24XeH4gfr1SDXDvFEkWp6yC9Eo1pURZcmVFuEdwXhD0HpIo1UU0gsWoAzDFUG6NF8QhLdHm5Ah14VMfQai9XvIfUVTNTIhr+TShRYRX4GIoX9HAmmZiAPNxw+MbUo2pi8q4GwdQNfXM+Svp72XHWfoXu/aMOz8XHewbgCRXU5u9m/GKyVcU25ONcUzGhOcmTIEhlggxqigKabJWW6oZm2+BWWrpkBPyobnRtTL7LYOEbqWFbG11F09jr+11ilb6lS/7GDdACJwONns3xZYFWsN2JdsBtIvqj0jJLIIGxAYYoFYKRyDjj6qC3R4bojE5WlBCaBPRznBmEBPMc1tJOu8qNM13NQOI8oFmCHqhyqBQFRz9qttuUURd9AF0eaVW9JWwx1I+jtxmyQXuH6Qk1f2DEg/NiPVDPN1mX5zliwVcpW7vWRElqpFeEcwoYeiWX1topBeqDt6/3Tp0nxBEN4ebUKGXBcy9aX9s+r9M1WNTMgcDnH6XcRdiBj6b1b/zETc1O/1yXWZfpvkXb/X4oDfQGsvOc7U5AbXhSHnZs3B+pqUi0Jyk38zTpM1QU9ucj1JbkizGhOs+BoKUJMREAujQVNSi+y5oZp14hakrZoCRSkbnhtRs2VB6gKplWQbdVeO44Fvc8oWO9UvpdVSqoeSl/i3MauA1gRYS14CZIAatqVZIRHPPaAANRkBcRtYnVw1qkvVIaV6SHRkSAEQHXCcULSwVXmExQFgybTDTY2JMEM0kGBNAYHoSme/0pZbFOnQpou2qNyStpruQDLQidskOeb6QU5exzgzjX68BKk2MWf6nc/Ug1rqZkQWq0V4RzChh6JZtbYmkWaoO3r/dK2g+YIgvEVaVGOh+qcLOR9Ug9aveP+cRTXokE3FYGoj+jl22RRxqhjoNzfXZfptdLt+b8PFG6e9u4/r/L1rQ8m5mWjhIp9s9W/GaeCklmwNmjLexgSHaw0FqJ2J7kxTUoucMcFh2xakrZoCRZ1saMOX1AVSufHMKGVmvMEpW+RUN1r0ezDZ4t/qLfp9ZbIFyFXUsKFFv1frELGhALnrN2xcQ64rmRF26veg6MiQAriSo96GE4pWt+k3WBwAlkw7jGSnEESuHxsMUE8RqUHackPRtZwzD6JdqPyStpruQFJvEum5oame6gc5TbBXST+2INXk2jRvpt/Fpn4PcpOjjMiioN8IJvRQNOvKTv1GQQ1G/3StoPlEP9x6i7Soxmr1TxdyMagGrT/o/XMW1aBDNhVjwOnfqv6ZirhFv8ddDzr1e4O8hi5PX6cByAbLAzj8WNt+T69RxzUjc4AZAaIc8DQHttMmY/qAd32FpzfKUTOn8gDzhdFGbu/YaA8/eKCLtr9D+G3EjhJbAHKFJ58hudyTXyI57EmF6pZ58mmSSz35FMkhTxKwWuIpzkIv9gPKPePxr/Kojse36YjheLxV+ynH4808usfj9TqQMR6v4TE4Hq+mqGKmmzRbiy1IvN6TigHfYMlkHTNKdmcla5lw67ltS/51PMa35O/nsWFL/tVihvw7vKhi3zd7UuHumxzL9VvyZ1V685b8aT1fsiV/Us+tW4gi89zCFJ6nLZ5sDOSQvC6QQ3KNI7oFcmKeL4McPV/KlFkIJrYQoufZ2JJ/NmeTMq6kHOPUtR52f2ZhjAO33II5ZleJ94wtsbs4x4bs0s2xql3QObZUzFDbjYGZZlJLSCGptZerfVYnwNU88QQiJokEbuRN3hSv4nX9TezzjJPbborPQmnjGUrdZh/Fx8tvik8L+jTQl2fQW2+KTwr6CaC3ZlBEf0zQH8WTE9P6E28xOJPwZwWfZhb+PQmD34fQFe/nYw6nj2qCSQTg5UwyY+a2nHevmzA4XtzoMelwDh8ulOICgkbBUsvJTFDVcodsOnPt2Zguh2xXk411CWXLhWwrqd6zESMK2VYJm2crhWxX6PpuS7H9MWRDTIoRK1t3yNZrYTeltIvLs9kt89HYgiSnRy4p6cG2Lz0IRSiIDZ54siZp6bb46JZeS61q1F5Oiuihz/snxyNdudDj0QDedOPBco8R8KYrB5Z55IA3tTjb4Voxj2aYl6aYOYAcsHIcNGBkI1rA1s0NhY6JkHIrplqGaTjFtJQpuGMqMOo4piqTScdUwj90TOxfasXUlWHqSTGt4Coxx1QmKuCYVnGnhGPiqLxhGoUmWShdZaCVvVVRf7Vajap/Phb3PRpb2GbV3nqFsE1FgVqV1H7JSlLRveYEhH7Z07dp1+YryYRd0ja9NM/L6v3j8X/w9I56TQaqQvTatvWleW6sD4zHuz29tY5pup08LF9wL0uWZ3Mdu3ePp9fXMZKvJg96jX5kedZoQyj30Su9WvtG79feSa6mwyTU3pdrJGOK/klPiAwmtY/F8Y6Ov4+q6CqUOqHjND7NVkECU90EmD6rZE/jC9EYvxaAtJQvGZNQ/mPvZCO6AUlWGtH23FGuzJW+EOOyGpRvKdh6iUGa5qyLpPqVxhcsUzy5NgqFf8g91GxjzABJYXvujK4UoAjJ89wdcX2E1WqsmNwQRTa+6FrhiNCZHlWzYVG/OvPqaGisT4+FMBytjfJV+m6+8c3oFbqsQjte6qx7ynhVtAWw3pW+sImgXggvepzpAkgcsN6b5iAWWGdx1F/YultnGSTLfhTJu4onk9ieTADDLgB2X0rlubV/8urISnH1DvnDiwwCVtVfSjxlv8Gl5QEHcieAxsXw1subVkX8rZIscnqJxUYMRkbLIe5sLQc7TdiXt67s7Xkufiykb0lFe0kYRIb5cpQ7SiuN88OTtd74UQbuytroaG8j9/JeFftbrp+AqbXRe3q93dhWZvtKj3NLZVdKTOOtQKUKH9XdlYJa3o/i0Wh/6imgtEto6Mq66N2923NPK0xduTr6w152gYNRe1V19yz2jR3QaO7a6L29GDxny9qljTVrnFb28LatjVqZPEpstpPJdgbfxvJ7xt5CBJay9KIJLGXle+xizlhovF+t3snQYVhNGVKdibPy7IBlgd/tuWO1wJa6xAchqTer4BhvWduJ9OkyrSqZ/jF3sOebla1GOOPxsaFGjn7ZiIko0xlM184sIrTNrmqGILMDjcJU46mwffmzBqQXZjz8tUHohhnkMwaBtwyiVXMjLZPzxw0C6SnhYu3M6PYcjo6lzy/cnnsqpI/Vtue4pMRbAqng9LDd2TDAVFbL/2cQGiKDsL7sbZrV+1aD0CaZwF7AOlu7tIrmGFbzaKj9cH577l2h9vPDdtTA8jyL9X0dPgM7oW8xNyJ5+dRUr7o+W10IjWj/Of057AAfvSn6J7XWD9gwMYqTcqNXJYFaxV/go2o7TfOeUZoN6l8MsKeAfcnSkrZl/7Jei+PRd/XsG4++rWfPePRNPavj0df17B6PvuLFaBIr9sOA8RQYzytduiF6TmS9AFnWTpIUflKl8Rhb6Kydmi3EClJuS/wj5X+rfaUNWqV2NDce/brGirfZV9qjRbeRIbqtr7/N14I30HssI42SNce7DOIbA5yQJwTRBgJ//aBloNWyVv6AIKvj12lcNoWtxy3HA/AW/XgA54m0rZ9ej5EpZLv54RrzwuGtcDwAWtdGn+26IfoJNsNapGt77vlS83jAYDLgeLQZejgZssMBMgltSI/RtbtY57sbxBoQbShUocIkBv51Ivj8cCN3Kz4HQwsTPD3VRU1fTW1S3XHcnJhYbQcmMGEjk9nA0kweayaPNpOsn1HytJ+1qEzktuRPjfjzCM/GWWLhHJcidUSHHWqMnI3zzChNjTk20Q0Lgp3By8TVCW/HCLdpDV/5i2wy+xSTJ44VfCqeqj2Wb7yYe0CMyWKLciFHGhk3J7gW3FjOIBxRgQi0wYzrWTwP+VQIIPtnsZGIwIN845ZzFEx6/BwFA0Q1nGSQEsjka3uS9Uf9SzMXaqsC04yhnImI01MTXV7ukI5whB2EYYgwCPtJm0MEHgf/2kKwQ46Qp9AchGHIANkQDf8GyAZwtyUF7DtjjY8O+cMSrA8v56qTTDFdNqdYjy1mbwhgutDI1b5lDkJXvciPTxmk8Z3PfNZ+T4Af1EqiJfzkXk/JvK0e7JMsRXxCTlEXv58jD++jowzQXY0X83JtimPdGgI0K3C/L27k9tGHpM6FVywh1bWPpHaJPZDEt9KVaHMmTb+wRI9HHqi9N+ce4JlFjIZ2sRcvX1qk40NWq7UpxFG5qk6K5gkGoI85X1o01tXIQUGximPmh26+EIuoLqZkXWFKFnq36yiLEhxI2cVH1kXxZ21OJ32JJ40hVQGrJ0dB0i0384boc4uMmnP9zPe+5JR9jtlCfNbTSH88lvNoUjClr30Aa4+Ts2gi90uI+i2PnbLZlOaKXT1FVTFNq4T2iOqxtQeQOdsDoTrrXFg4XanxuwuNE5gKQDb5VkDC3apRxrkaWe5FMNMVhufcWDeiSGmjR7XS1kuTJN23UnturKC2RSy4XGW1b3ksD7mRC51+p0/7WDIr87fnF5bwe044mY3cK5Ycn5iuPFIffZ8NUK9s5NXqeJvWzJV7mA50LannaG0f/UJbY8cGnEylvzdgsuEXLo3b8wNy9g2c10lRJqNqVoVXdP0eAtCOAi2Ea0oKxbQcv5xpfyH2GWP1BUbrOAwG3zHIARbwAwQJxD8a3oICqQAWgk0J1jjUhyH/3CIRoCjOWbU9J9O+pCd6cWYRYorsx9uulvppMufSrf1QGESl6TJ5T0k/RrfETwVT2GKLjyzKTO3hZvJQMzndTB5rJk80kyebyVNZUgb6KJTq+fyoNcj70CUmqA36HTwVMbOTY2zPiMcKqEXhFuwtdmCvuYQafFx9H03w7BJ1gKL1pG4xXFQ+2UtyBFU6FffAcAGkr+jNS3/WRBHzuegXfeqD0ni+o3H6qfbv0TnvkDrUnGvkHsJM3dO0XE6EiuZrD0q4oPvfzVduRScFYyTfC0aNG2AVA02so/sao6+dF/c+fiegqUF7YVXGCZMQNEnSRhLPxSHN2CX/UdL5oPriKRI/VMJzhdqZsGe1+fAc2Rk6jWhR20m6KD1JB4aCjT9RepKO1u8NI9IpG9pbR5aTBmmOLCKqZVRJh4hjLDzJMkF01HIKzwZhggqH8nS8CKU3W1SW+ivFDk5tPoH2NEHo1BNM/jzBnNAT06uIXyRd1W8Nx2U/Z3qUO0LZc4Ii5NZEKxrRbbQbcUaNoGqTdByLdTaAoRttaII0zqrlsvEQ39hSh+RoMN15H7obPXADTwW6cN5iyaVe1l71WPt1tS/oWLHePWMTNRm1J33G7mdmu8ApdaJYZ0o9oxSbQ61U+2Zn5sHAlb8TG5tMhe1ksV6dBZsifcLWvhfawkqGrbMWtmEmwtNZC7s1VcupYr1nllrYYNhSS9hZjXhCJZ2Vs0/RKumsnO2MidB3Vs6uR1V+eg4xy2OaWTn7B62SzsrZZmiVdFbObsRZW4vtfi14MvRsBzQ0nejZNThr87GfryV/hob9frO2D51rNokqIoskns+hOrNtezX5tG17hSJt956xyRWGHdfpWLcWcOCCjVAMI2wxY2uUfkSK5LM5XQNQ0cZVZm5sKox1PEObCi1k73vVB9Kto7MRZBreQRC7pI2g5g5bmlhz3VmI1KxYNMXsP+B5xC71VEL3TlgCajkPTQcgMWwM5VjCguwRke2bOW3RQmTzUze8cjWFAVnUEJAbE4011gKcNRYm0h2eA+kG2YXOZc+sXFrP6+BSUXFx1MolO6JNlzq5VGhc4o7ZTit7Apd9loBLa5xndW2nQeCSS0O4VlRbcNVsObbeci+D7cznBgNjjIUe51YbTH2HtS3W+M58bde3dSG9cn2Fv/p2WzZ9mCxYInFZsF7Tund4YceG4d5Z5WE2okMeBITFeqs4sO7WJzrFQcxXSh6z71wNa4colEAI1tTP2x5sQXwPtm3pXSjAVm1E5vmr2orN89XsXOaihmUSzlLbi4wG+17kXtslm+oH62G+u3/QXj24wJq9DjVQxIXD3gv/mr6OepdIZcWyUftedd+i3DzpMLu0Zh4wsYioiaZVXDhAM8+c2DJB+8kP/tIL8ux2kn6kKnQIWZkKnSYxiGpKaKZCt2kXN0+7xYLnavYBIjRttGeFQdu5Y0L1LjPt70+1jFHaN3VrD7VWK5u7/X1PNzoXtiAHFeScUKsKcpzIX5ebHFmacDmyEteqc93NPd/ZUYlwQKa7dQv08zZmYxK04VtGA9bNWJy17dZV49gUyI9U2rGMUdtZr3B2cwe4h6CzgxypUhAOaVUKTiv5q04s8DWlnhl8c796pUl72CMucwlLtoO7jfxp4jbW1wvew4/ZTck9RjUnh9r6Mi5MJse0B3PsydtIO8npuP4KvLlfvZruV3ezhj7OQcsh0aIzIN7znocUbQaWnaxYJyC05Lqf1oI76fvVe3y7ea/XUJmrhsOqgZt7wFK1Xeu0vx+G9OMJSC7dr27FiQEprsW5Y8IhWFKeuWzXOrM9Nqpr5/qh/C24fxCEwhe3RPJDmYXZIgARt6iBF17MXjiqX/IXZqLMwVh+UJQO2ZW0rfkvh+LYXcxpXMw8bmfe4m+4lXL/8jo7i6cb+wtuIZPGXO1LepFDlBcJ9eIMjyVvTpng7a4GKHA1KHW4WKdzzyglx1Cl2j2LvHlZyt+JTY4L2I4UtRI0A5ucU2Frdzzy5hgKW2ctcqeEp7MW+TXUwoFjlphm1CIHuVlLcGMgLVTSWbkcQ1XSWbmcLaHvrFxeEpXjf88mZvnZzVqyyuXiqpLOyuUYqpLOyuWizdZacrybeDL0cmKFphO9HMPZmk+edTN/hkbu6GztI194FonKMUQSJ2NUZ7YxxuTTNsZAUWic9gGFKhzXobx+FMa9EU7qumOoX9IgiWPIrVMljRDMJem9+dQx5DxG6hjKutDtZ/dUTcM7CJJHKoKaQxmtBUx5O4mUYwghOAmDpuUQyX0zbvTZxy03UGZT9JPgl/fkIeJVQbaMH4O3rLhuvTGymf/yyk1BBgyOIb8zYKy5RVfvbzqGbt/gcsi57JqVS+t5HVzK/RVHrVzKMVTeTi7lIUncOk+qJoFL7hPX6C6DLObsfncJAC75GUVzDPkVGnMMR3QRuoYdXdFljAXHkIvK7eSRBg64Sr1FGXaOAoXTqOYkI4twDssMfj4dpPOdjuFQh6PcPas8zEZ0yEPOr3hvlYfcH+XtlAeeodo4xrtT49tMRS1rTo6kYCO9PpmTUwxDPoBXy9nhibPDPWi60J+Ta3iLko6fAoNVH/W7kwFYTRUkeIb8FKm9Bre5mvS67Hz8Yx3LZefS4a557xPuGSL3Ts8w86NH5xPXzNlTXn60JNMqLUXGZhEWjmH7BIS7ljSn0C/daN4XVEiOoanQsyS4289kZiqEN21qp2vY9FytA8NyZpGZn0vMB8eQK+RgONWy4D1xb5+9Bod7MJwTljOFWH2wT3UweCupDgbPsMf8TRomlWM66QxSLDa9q9FUoDqDh0CLrc7GWXaOm1bkXRk0e3RroWv90D73sQDQYWosGciF4rpMo8U9wwHzvPLBy3XlSHUiOEGpTgTHkGvujPgwW0AsLcQj5oz0cLTPnLGiu0pt1J8L1J8ueA/XZJBVByOaLf1tfdkdQxdj1oPDmUI7bY4M/RWZNx3DcuoYBretey5anhUtmjuEjof89FMrspP8cBHV8aOvVktwlhFOqAWCza+TN0cNpblqOK8aikkZLIT8DVeYRbgvjeRSx9CKm9+vSF/qDLLNBGcQPs2JOzAY59yJO6EfyzEnLoTtIo2KxPtIsCOm6RZpgiBLlWRQeRLk61J8RSNU0yEjb01WvplXTpyygaDp7FCYXTGtheUDas6lPt5SkfsUQtB0MlQuwyb/DGyjijk0scnfBFuimXcTmzxAoc+wyTcRtqYn6sGtJno5k6BPJJEmevkowpwhktcnzM3hGIAQtblywpFhluMiHFkReTgqAp6ml6cibZ6XipCr6UMpR1ZEDqAA5GrzgwiQFX5uP0juiBlKN48afLtSP4i15uAH6f5IGURuEW33g7IAWZ9bpPKsBEH9rB5Cpx8kp0x55/CDjsRh1DfbYGNkcBXkGJidV4AseEa6ghRD53dQuOEIoz6/8gQXLM+1+kFcJOt9euZwZoeJW+3uxY/78uzEUacfNNu4Lx/B7Lbbb7k/5pLKN/Wxy0JmwdszS44fZJ4AfhBz/RAO5Mr5Vj8IC2nzT7eTwRVMx/Iw0uPfuiyceX6KxWTh7k/mHGZDkhvzZoRidnd8Zpx21oFd7t/M0G3mBoWRXOEwls3DeGBDfOoX2a265ibLHWoZ0gmQmTv0ap3XkBdi93oo+JGN11z62zKwBDfIQ2CZz5iNgC4NfqbHv6avPuKE2GLqHrW4QdlVIMFrnF1as3nR8hDbg8jmB83mROvHy2b6QYcKuki3xYPWsGoq5N5kweRpKoTPaGqHH2S+42rcT4Sm6B6ngBQ/Sv2gkgUVUy0L/uRgm+vg0aTMkeaGZFc+F1mqi8FpcF1k46O7QakcfQhvc4A6/coQlW8bWlnUMtZPKsJkDkUwFnKbWXBuapB+PYlBWE4dlx23uEEecspcPNeOVCmC15YpRfqqMGnmFqU+cyC40PSDQlBK5nJWz4ANWUb+2YL3cPmr/JaUUd0Lta192f0gF1/ag4OPyeGhVq8idVWMBPdRMrM2t5dyRLTIb3Qjq+lGFyTITnJNM9VxF7e3WeYHpW3m4czgxmD/56jhqPtBXWaOfYodfGZ31pBchx90jJ3AHohqXueggBVe0Il+vKCF8oLOcUK/gBdUsFMQ5gX1MHze/Cbsgp1oL0EZb13qKAW7CMr8oV5cQ8Aj7i9xF4Heip5Jd1KZI1TjRgzAi7Qpxj9pO5O5OQM0L590S0UopfMWve5sLLAaH6Mz2Gn9hYb7MSmnqedq+iUhvOk8wuZ5TnP9R/anwnrx5sd+DYXoVyHr0RkPZa9IZzy6koHH5CqDtMjT8B3O0w14ntfA3oGvDw0AwxLboG5YdIsXCyr+Y3XtFehaLJYT3EUEvT5V/ZNdy0XEPEOjq68GsBr4zAbQtSqU4amreNhTJA0Kd4yQ8Ctd1Np2YRP6YA63Z3KTwY+h2Wu4bagQ7n0xK9A1cdObUDW1x0TMqfCJm6RnpV85vp+VeFByqw0nqP1SJPe52VqY4vErebxubrTCNbC76D1TuFvGNLMQ7mgh4ff2WN3dVjdXBqvmQa+Zxv9l6mYVHp3guI78YjZV6XcGdYZHb25/6kOv1O4PBKj7zpihDxFhUAOHxtDlaMxBhxIDiEFxQUPCm/YyZvcG2W4rvDW/80huDcLObsQZY1uU3Npm0/vuhlIHBEWmRjV/FW8UOoaC5uPDqOXZnmRdKHQa8qrRuTjdATo9pUYvJ57DbgFjC4vfEOZhJmTnYyrSDNTRaBIhUSmJsOQiZLeZRGgMc2eZYdEVXikWv0NM+pBiKQYsRWGhVczUOBabBDOBCcLW0a7ACoui1qWChtuHKjJXtwg8cCmY/9ReqhPBYUKsRt0Zfbcr7v17uBqsm+/dEntm7kzI/DQRfLZDaH4qDvapzEA62NK1dJotWCWdd660NIDOvAVbNEKpUEBn3oIZYv0rawpu+zIh6howBgzX51SIfmmVmWsJkU3IEiLt4k2B9gdmDwcsujItxRKuA0PdUizeJ9jjJSy0izeFYbGmYDoYmkLXmgWm2ptCxwqpoL0pbtfwHQiSJgUPLm2J++UfhpqkIiHONXtD1GY0RE2qoQVJdGAhLgY09TgxnODplYeAIwew14EcD+IKInKGTJzGwekhk38Xn0xUvVF723hjp1SP3IeMNYSnH1WFALt/jGWwNsFpXaflHiQjdhTygSf6eXS7i6uno82AcjNXb0chbRSV22J7YxEOv9fg3q9JzO/iQoVNcmlD8keY+4R5Cz8gitx87A+3X3WZS4KHZzj8yi+6SYrDVCrg6E1x0MA6oVV9c39cerRgI3Zlb73EiF2SIMPZLAyeHWLSSU9LcxROxz118CY9m2XwpXW2E272NMqlA6I6j5OezTL4sM5U3ejpmnbcbmU5rKidkfGjbHnTFUqcG1lMktMgNzdWvMJeMOKlxmciLcPZ3nbOZGzPsQcrPfJUt23zdhgKe9r4MjbRIGy3Uj57fIkWXh3l7aCgwiTsU5tsbKttauSqY11+WottXfiebBYlC45jehippBBEndmAv+DapWeWcPtxz/ykkdZ1/YgSrPXoiJKdsLOzdL4zrN7jBj/yXWF1TmzoEJJd6cNrn2FkYCLdH9DqNkorVbIQhpUo+VWXnpuMJ40jUciTyEftvynBbrOUYPaiZbRnST3w0UvaSDkt8epcllr8D9lfqN1n+qVebSC0HWjHhZIr6W2z3bNvwOGT6pdrH4Jb9UGuy6r9n0lpbSTR6Rp46I0m2Qx652LalyVPHdiyL9RBtq8UGuWH2BNf+7AjMLzKzZvm384Qk08HyfwaKSlAEQpkBxUIeAdnOSlmvz7OWdGpxrtsf2Kp8SMr5lMAbYotNb5nEL/vzCHfMYi76wbRMu2Rwpb4GS31lgMuaeYnlNKGYTjKaRut8TjxZp2hZT+ikL3rDafoGi8jhWZLFDv21v40ZuevZGAbjdFc++Lf/sSUxbZNV/kR6EOf/jTnUsmUFG+QJJPSOtR2OyffsKyG15XbTni81Ot3bW7cmAlKN5dot3Sp8RZeOAZgLwnVcuK61HjC+KUhnB9T+i40PneLtRDjFtj9OOxtHHfyvlIMRxJKjW9Fk2NsfxQLKmpnHHON/v/N+ox+1yJqLEwPrZQa/8UAvgfSAJ82gO+AtP4pbd8SPYl3pr2PLqF/RX/a0OjK/xSNyZkjhxka6wa5G6IXtVxo6LgI3bXVGa1xFo2NwWjdKXZzuyKKUljj1uhWUkuNz7dARCvwJkSnCD9dNmpBXJagqqZ6v2tr84Y1K63dniIDvBnZtpvTMWeUg/NJDtFZFxRbJZ3Px2I0mWv8s3GbHQlz3dEvglQxeBx6oyh7xoNavF9vLWL4N0Ukwi6EUuOgftM8e3sLb7YFNXAHFVui/6FS6kzKoQ6ba2z2tv8Iuw6i9OW7vNgOBnZKjEcfVK2F8egDTAtrH1fPSc9muNnQr518WeHyYFpq73HrQpDYk7gptaP6ha8I1y1sfjcacrX360fStVsWfS9OclClaav+X33Q2dv3xr0MDdqqzXmA8dg4V9PT+czucLhIncu7Ahmekc3kebbgZegx/NaLIVYZY72tDI9n2EZe1dB3FsNOb1E5rBQGp/Y5kGAWHnRkNI7BNJ715hYzybAXfdpqO4tL+DL+XB2e5yp2UjqqHull8rzIftKGybMvIegItNw1BZ9tRpzFyuVD22RYgXabEWbha814bTKtoLYtCXDo1j+FeXJkawkW3+eeW/+ka6Itts9Vrz5d5hbTUJdv8TiXZ6KXhQ4IdR3+ie4QyHL5DbnNcL5MtwjPCNPkRuRm5GhGLyIzIjSPFWlZ1Zrz2sKAiLaQTZeiEBY46ahfHqvKZvVrOiSCsvrlr4ugrH7N70RQVr/iECIord/2nMQe/5TjboE73c1qgbpzthdUW2l0x7GeFrInobm+BT4127ZgHm6lLW6esttNSTBtWaonrqOF+0+lkXTdj2wBBl2EavstR20nnC20eLjJA6hhJu57Cmz1yF91kagtN3hEKHUE/Y9tlbKNBCD2Of2grUPaqlBza51FhX2vmgfmwq2v/OSpvaa3vtruNluk8tp8MtISKvQNVs24feHxifNBiaLHaM31hyb6HzuANn3+TdPTNJf74xZfMXHcrph6S8DKgly+bbHZ1Jogq+2zplYwRm2fNbVmeGr7pqqFts9UjUmGGkybY/WkKa3hztAu+t2v5r44W/7xKLVHKUNYwu96tTU3l0U6q2tdfrW7W8NOtZabVTt6kwmAabcpHvdFm7pxQ7LOPrv8ffpgSxa+/GNb4LT60LkFDu2yOWnbuqBiB21rXgrTSYLNvuGXpzcFpsm5JJgJjHmCuoViO9JfBGa/R4kMMhVySSwIoVkPh/gqUxoKneXC2Zb45GximY49XD5NhRa3U6DOwjn8/JruFG1tKZ9R8UuXRkAIWtgCUEpA0M/W/ZLZpE3io64wk7Fwq6++hWukbfHOZ1l+721LnNUCpzOpJwqSLG7il8yYi2a7xbXo4tFjXx0KF1T7IomtG3u9Hjloj2hbFFkr650xXk07U8t982OBFa1j2EzRQjSdy937NUm02DqTxPf1xPlHh21xO1y8aschsiNftqfWJxd2GiNNYt5DUg9dMaMpxzkkQVuNDbTF4/ot4jlWs+gw4QSNQFzeYgE8fmlTWTzyqWtblKUy8ejYQo5v5RuVW4llTHBqcqKLg4HbddyL8F5pDGUf6wGmM4IFnfGyDpCzsKvHfvkRwaT4azSCzuz2PVYffiyp7qcsQX59AOThDuA9+ydyj3MlBoHG9BNrm0TaHiPAoU/onf1K4K+NscA1kTvExNUPn/mNKAl3Quj6noS7B87oydxOF/ck3Rw/Ts+X+J1BfkdQrsaeWLNSIQrOGaaW6JPfaxTCG3LBLFJsYUq//SgE2NiK5iEov/2IQ5CC6hfdQl77IQy0LwRXSg6VeyFmQ3grYNCIyn2H5A3ZZBN0mJZ7+B0gMytsI5iiJjZ5AsIWwue1QGXANpJik5USNsIhgTatvim+6VHZlDaLEfHLpR6n6w+0afiXSU6x4TsJ2SBn3O0d+y5cIZYXMlkoiB8H9XidRfDs/h9h6g2YDM2Ah/fMQ/JbmmV9eN6OEvBgGLezLEdz2jjs1snOuRCCtd3hso/sHDd/osdyaNWUeExYm7NDVL7JOQ3M8jn20yDkQictqqy1Hzuh43kzAwQqwjzYLiui2FXYMNNlpsROigT0aRGiQSqisC9FqiriS1mcP7YiIcDnN6c0Q8XaZGBFKiri616cNDTC3HzpuIAXYC2AAspOh4fr9S4N/TConvf7JnS8IxPqCe0Z4ClHysTKGGhbw/XLFiZXxmfbW69Y9Iiq9+1fdjjMa04D0myZNCIVN0MIirr5hkQ7UOd53UmyfYXGV82LKIgXdmmWw6md8BMMdqzIi9S8SL8X0ZpH2NbgexjtGE6oJZVevxcZ9CKKkUtuJj1vVh+udAbDC7CekUqP+0paYomYzdblBExktfWVjRetr/xkautrrS3wikHtaX1la1XrK06YDiHrqiJd7ISZIrKAYa49YBMwi8rYWRUGiuneXOVRnZWs7a0XGSaK2m0QfpKTBSvdz8TM62We3qoYoE7eyvHyX+M0+GbFCf+dp9frpzhvI4/6vGaSr1CJ1fEr2X3PQV9tYNFdeDr5rGCqbewo6h68FMI2/PiXdcWchUbewuRU4RTCIUXFab6nRbqiOgSXySi1erJR8+vNCUyOx1xYJwz51awKC/THTD6J6GheyECyhd8DBfjsPyryc4SkXoqgOlYxvmT1ivoN0drzOT9jrOMEHDzX3LnYOFBiBDVU2kOm2ywc/gKxrgB/SzMLv9jGfUchyxNNOD+Wx2l1hzPKxhxFLzae9jP5dmGLoNrtxgnnG6KjxJckP5YR+MJPmBIn4gC4yUG3wGlVUXFNsknj6ZR2csFki62nz6YX6XhU3G7dy/udasxznST9DqvFoQwX1yexnDhuslIdEpTuF5JcT+AOqARzb/t9h1CRoi/ZG1Sf0bYTXvkFVWILHGsWj/xW3ljMyO4SriPX6emnIl0eoviDTkG/LZced87Vfobp1j/wfD8OAo+jOY3m3GuTo2vxfJ1h9eumcqYBhL65/IpHorPiFhiJFeGAfIXXalxECBncnFxyqH4tVibFfhygcZp7K+R42634vPZN1r6a0+nhxhty/960wbFQVD9NmlMMxCuxMx8pln55Ai8h9pg3X+eUcYj3rWz+2S730WkRHg+6flCZ52iBhl4seQRs1HMrITERmSHFa6CAKCI9AyHeg75mH1pwOv92TuXdOqbuHJM0PuH6RMF+Q4BbG7j/rGrXNthtCQpgcQ2M/tHFCwy9CqzZCf68LVGZblPTXuB4VJPyqHQLZiosq6D2TYWK8KRNjMLNjbaclNcFIfvQjBfKD0wp/VBj+mf5B3Sz2kNTU+Pxd1BJmRC6XMEbQEzo5iIn17gwpn5KMAkCyunVAmo1XR3VKeD0xgEO/6OnJhrspreUYfMfUyAuKeXF56lJCM5LEJZ4UZIi/su/GWEsagXCaNoOksByURS5GScZW7KalPeOVcdK9kLfk9FQT2U9x0xan/dcdanav0mRsWqeYAmI33gId7PRS0ZNz3GoSC/Vck3oRMOQwINhHE32zmC8OBadyv8N49aP3hcVHNdTtsIowZSY7cBem+0gqlnwX4jAguBVSz+P1kIQ7e974kG/bPDUz7eexb2A2XoWN63Oup61oGU9a6HWs9Bs3ZOBdlps3G5oaeS5a+RfWR3gvr/usf7G9BtJ1hpXjA2kywJfiDWqNFe3mB7YqhI8BOmmy0q6mNSWlQrN+/4IvlosmFLRmujm+iBXSlBrQTecCH/UWDWpvQ/rooR0XcUatX1T2pjhFwBy+V+B+wDtjtNou91jGm2xO06jTX4V4Dq/CvBaDCWPqzCUrNCtxCgWdDEgK6q6JpB1UF0ayBqqrhBkY5suFGQDDJcGWqScNTxqzG4lNLK5jVDrCYNaAICnsJbwd8SXy60Mlo3Bc1orDCL7h84s3TdE37ZANKsBeg6NRz/VszIe/asFycej5/TkPrAf6Nk7Hv2TnlzP9V09vQrMAVtYVJWejdpD/CK2ovP6/WIitYSgswWFE1pQQM6xXawTqAb+8bITVFoXfazsmNZFHyL0vzb6SDkInuUCW0KwBcmny3blD9MW/cCskopGP+VJISaI7lerlhqf8CQTE/3spV1eKpkI+Ue5vVG53ybD7eTUBzPxsJp0rshdYwpfm4zfphli+DzoOphmbvxHHVhUe7UWP0xbHTbN51K6OIiI9A5uquxmEwrXsTx+wP3GFcyaj0+s1rWSdpNeQJlWl6GjXAXt+V+8nQ20XWV558/Xvefc3HuTnZCQYFLZ9xg1KGicUpKxVLLP8oOUUpmOY5l21hrruFZZCauLfAziTCABcjHX2ho7OmL9QkVBAYmKCpWW8GGLrZY4OjUKOqG1lbHVxhZroFrm9/8/795nn5ub6DiugZV79n733u9+33e/H8/7PP/n/0zSdaboN9N0miY9ZkI9Vw/R6lSFEPUwbnL6u1LYqV5VQd/gFPKuUq5zCpWbX/M3pqLfMPHzTfh+owxUY68H1IGuvwo7xm7F7PeSvLc92urj2oNH/nco/+fz1M83dfpJv46X1l/3Ri66pbCR/Lf0qn2kvUXHqzY0btEvhhPPI0vPabxfv9k5jffod8k5jXfoF/46AonL3kO1nfvvxSl19ikT4HjxUGXtLv6MQzq9Dv9EfBhxeD+HdH0d3iN1QRx+WpC4OPyUNA1xiMpUBDNihq5sfvoEjRpzXCMxxxVvQ8KEawzSN48LG3GDhwz7F11QS2iQx1HosxofZlR8NfWYmxkWeMpU5HEr0B2QT1Ohk4L42WbX4q26PCk6MzYUOla3RiEVdDIfUYoaBDVIBGbHbAQDPD28uMPXRAmjOPQYn7DycslilioF1+1aXzpfmxPbkMwX8xLhtE5sqUEu1Z5Gy8znJlsrdjdtq4GnJ0IRne0BqYpt2sr0L4rokHDCzV5WTPjDEhlyJnpmeG+ZAvg5Pybq5YnOON0jdqixDPACd2ya0Z6CgxfDbLxC8qOpDmD3uTx7VMuCWAk2tC8KKRzqbu0FXiOeb76XSLfY9YgLd9VWRtnEzJgEZ/VucnxNf0xyFqtoeydS0DVYoa1jyf6yham7JLQ1Q1J/XG7PulHko+yVtkr0FPkjdrSd6piawdvEjrBMgp1NgiU/W6XRE5uRxJGwMoOAsVSSty+cbkzKfFY+Z/N5U8RdKAJj/jh5BhdgkVOhTfSL8IdB8eMlwYP3kPo5u8/nuJzCNlPbn8mqyM86b12QETrM+FSC11C93lYy9p2ITXqNeKBFr8Y7aW5tDcQd1Sl2q4awXfL0y7dDONVm58mOGntmouOCHlnElmKyRsMWVNysHVt5eyWYOVPp9IcCOtRojBfS3Y56ftHm1f7siCFqEIE4q6pavEIkye6h1EnOoyeua10iGADfWMiW0JG1s/e6ApcIbsDvqyxVUnGRFp0DGRuvDQ54iY+SlSBmZ8c9k2nLANXWNGRqqU9YqNzqh7UJVOdQ62nzMFlMbVW/wzYAw1t/jI+sa5thA9VT6JHd2rpmP6wtFyLd0Ei6YbJYo2cFfd5ywXQviLJ41FvNjhSrozmoJmTCDbqxtXWmx2/eu1B/VIelF+rLdPKl+rIwOCKNdlhaTXXBcQONUnz8PkxWuojtTulCwJXtu0raYnd8bz/N2c3GmwLMTLktEKTzya1BLydsm66xvftPagG6NSThfOXYdo1dKK07hZKcr02aunJ/2rK7jhZztLk/tZrj1IkAe+dTq8llsXY5q6O3kF1svdq8EDmZd+lN2jjlnZfrRnqklCraq2hToKLoZ3pzf/HqlLPkaVpUAfmmX+7qqEhQU3MU2xcWZb6P2li30Vm2Fldss9ZH3Yu9/YU0bupItF9T2l+UIBqZDjCAdlVt0oG6XKNPki0Pqdcwf8D2p10A3VkdTZuQiusOBX68f0KdTmHg+LIaDk0NOk3c8jxVDLk0R6IfRE5OQ4Bb42lNzYzbKc29npJfujpYBQlloN0Haqt/nmwtitn8AAXB8t7aVHzgU38qUmLNke3iRk6yfyV9UC29uJlDT/k+StoPcafblji2FHZH3S0NRqN4J0elPYp2L97ic/ShnPAFpVbM9tB/ZWwqZmLzJGNQZGvQGXZJW5AwzYjS0BNG8QjaJ7guG+Ig363xgblPu4WvKb2RHTX94m523XFjdl9rZppzNhAaVu3y+aa2GRrDHmJxV3OGeWpSnaP4O9BOJpttO/SEgUXhN8S6okPFm/C0ETiAdAN4llR+L4GQX+pQoSe6cQheIl3fKGVTwOIKIHtXiKJbFOxRQk1C9EutYVzWdkzmR+smX7QFUvUQhE2zqPWj/r8Z/LbRf6jYq2a6CboUl0ha75VGR5eqppoXaVlmTBYcfl4RfS2c5SYYJGwxpBvMXqEVy5Pbawi+gnTOyHqReCa9KuiNSUNwbp/uzXb83Hjf2X2UB6Yo1yLOD9lPLdFS390Ci2Bxz+5fml6sIU0EDhF++ALBEkNPAz1gE1F1TNyW1ndJvmiDn9RMt6fJMHkahIgcZj5s0+l1X2fzat5ANmfnk953eLdPS76w8SL9WtXpJXhePZvZK0iUntBLOcdnNV6nVe6sxhUv0YXLhDlb19rZ77x0m9KV5ev0qBZstTiBd2Jtp6OgjfQv1NH+iterB0ohZ48bkyVDtM8BNzgDrQvRAUtlLJl6qPx2ao80jn6Oq9n3lSZ3v9LxLnqTlYElfbJhlzYeKxyJVWrK7i04cmrkegsZK5cnZUlqDCEEFJW86Gx9frNRrIAE9PIcEBbFVZyPyVBEusPCcFT0Nk+LdB1SwMuzuwwiEXN/b2fcz8kqzd2tNHdb/Y0YYm7RLcXkb2XweqeOGSve2WySNFSsGFxXUqJ6yKhp7DFVVWyVsKXr8+mbpFXSd9pAGfQaNYPiXYiCNt2LwOhGpQoIRhdSao8xfSZ9cgkEVhcgDGwtutv61Jqk7Ldb6t+0gTufPo2GI9LyLmkGNCkdZXegt7CeaSFggokSq6l/2JrqmANHPqMbfDXuReiNYkYFBbNMvSQ9eYLsLTtL7jqb3AzGMmMsL1IG6NOkGUo9ejy7Sm1OJ2YMxDqzdxGwqyWa/PeXsKuASFWYq8rDTwp9I6MElEju26dcVUdkGVIlO7OhWZNcFZxqiH4yGktu20Z1Tes6pFpDyIqBXPJ4tp1xia5XPseaV0e8uCUI1l2fbU8loXqjzLUqTPUK2YX19ipPRy+v5yn7s15SZYpgrJdUOBEpc/WSKk/Zj/WSKk8ZbZVQ5Wkbdj1Pwb70kipTCe517In9QOp5ytIz4v4uW7ZeUuUpk7leUuUpKJdeUmXK7r6G9XIHtLkxgCP2FzhaQkoAHRnUImiJ0VmYde3hit2SURXQLyO95AxknBImTINQMK0Y34V92M6xslza8VMWS+PHhCjKBj8rcphwek0wmdKhMWGpAhZSAbmmkj9h8vZICKASZjWYDkMxuQaQpHQvTiguVC0+TTZm9Lt1IBMiWsBayryT/XEk88qE2DYqxg2Ib46rBDTJrQFUyY0hJyi3hoBwcpqUf2FJe1NhWrpxGiVkcAawLHmzJMfGZHdNuJh6kfj+PyuoS6deLkFdPL3Hh8Uq7+8Z/k8JZecPKhCfNhKyu5aMGgnTVjZdsiiXTVe6syTmieSGlES6kYJ1FigYylctizwajVGhxspWSfC9slUS0geNUNy8MJpv+DqmCgZ+9cJ5b9dcWRl520CAeASIj6BhQEIRgb+4pDkly+2eB6ZL0y1TLFCdscEtH3/TD978/o8ffViGQSU8deNd+z7z5q9e847dmEWV8A9/8+m/ev9NP7zpAySgXBsbfPNzNx36i0N/+/FPk7BH8j3DFevldbciDZ+XCa2NRfdaAMbj2RxE6YTTYW766J/Cydxm059DrgaqKJl8JiSwWH+qLYDosLX9FbVxl92Wl+buJDLu926RDJ7dzrLRzB4QT7UXFpiApQrR+vLggT8VuMgRwxD1ub+0YEp3pRyJe9XZ5icpG+9J1lmXtNjzMV5gczcCP0nFzbUE14YNNknZrytBNbZNNHu6vDDZTh5SjOtrEN4wAejm0nhObpzrh+U/pRwmJaBTY8WR2vFjteOjw2PBqg6RtUE0KlUjOzPZx9HrOXh33CNjF/MJCry1Rm5p7ZeJUtZT8UNbeA1i+ZhjO8UkKpGwY8oDIhmtlkg704mzuNfGYRQV2be1M+PLhXlJIqHTOsWLLGezTX23ZSI9RA2yDZOWV8VXn6x7bREsRpOrAknw3RAAIedrq1osmexRKJWO+QLAv9jqRBF7VAKRuxsSE6/uZXsEYrB2abfKgkOh21sChEaCchCwu3Epi022DAWBtDA9TaGKaOK3ozKqbGcpJ20tisP329xbyyJDr+vZTFsSOjW6HDQ+XOzuJBpp+Fc0LtUs6ad4hfcObLlk0Lfsp1ejzNC2NoLp0aoWReM9hGZXsfVqNKDgaKSzkVqOZskwA8myF3a90brFI+GhE22nb9+NZjs4pjd3NdtJo+OP64c1giVFZXPa+FSNocZJoiyj6OqOhlH6GJhu/XVq4Qr8PvQ1w0/kqGuI+eRP13hDALdcKOUcqBPeRnbSl+1B1taWhpdLLTSZYsGHp/nGNBzkL1gerSuP9JPnE4xRxKSQOKUgRIdUjmvrARGyauPaPa4CNnoPXCKoylRkwvKQlTkOUyeXqq7EP/Kg+CRXVTfnVRHluKNXa8rJXm2vvvAI7U8mwd4ei3Y37U+VSYJfID/LezX8QuNGlgd5r6PT/q+sY+2MnZT9QulSj93BTolFMPt1tJWilwnnWf0lwpAdbfX3zuZe/rtoe/Z5+Rl2s2tQb2ZfV1y0lBsiotZShvWvqp8wqYYzeF9CT7jp9yFqT27a/WkfSpRSttm30A9FzRHuqi+DjO9fUDbJkZn5sZtxCiAh+3iTmZ9W0Qv0yITaQ6+IEzqnXuKTeFNEBIupja+YfT9xDLDQGYGxp7XN/J10Peuz6Q7HymWKG+sTPXNyfZ5HVKvm5eEh9axm5fKQEV/ihAT4ZPeRnRtudXuIwdeSn7Bt4R5cOuMFaTotF8cF5lPFn0zXs3O170EvfHnR3EZABpYxRWigFg9My1DRmvyriXJrc6hV4naRgr1JqXY3XcCr2nIMQaXehPSUnIir7GQyRIB6CyRZO/E0BVo0oI7tE2K3EzZU2erZioJc25oaC1TAVCWoV+/UbqBEPFIkIMptA6wFVJ73Cu0CtE+octeeqLb3CBU4no/XDTcTtp0g3xt4iOBvkOZFwYwtudHbQbkDGM4pGKfhm5sCyBg+8QmhaKqjbiLKTXI7elVD+0Jwq+ETh9SV3XhsSCxSwjqZSQK7WUrBiR09CfVDpGidVC3xQLXneVp0T+Bp4b1uIFQltI+6WgQAubYhDCyvWrT6PNrv6QOWzandnCGcwQPNloB9UJJ8A0tZIVFL54WSB8VeAP64J/cCMI7UH0gbDRoptXE4RTj0wZAblPnGGY5UTbODdq7qaFXn1/ZYhGxVXSV/1LbHNhMFAUx4W5do0ArsOXQEsDuGofTRoYQHrkTyhasE1tU9y/wS1gB4rxK7kfTlS4BoySxRfvR2raIj3h8CkQdwxc+nfURyenAh5adAoPDjvRWswwDbPYBHduitEKRdwCPcMUtvBbVJDVdb0mJQQH1Og4yH/hUV7UXpnFCCVe2coG1gQsByJtIC+3yFc4LcFMI5wUT6TOjvm2hN7F5mxE81yTHEas4JzGnlqst4KQ+ZZmrOCYr9q5lasX/NyNYsJQDNIJU4QM+dWVSMzYzjfHAqYt2LZtDMz6BSmDll0CQObsQFmAKhEXMKTgukL2VeP3WAdv42PHT2/pf+5JVYCJfkk9dhiwVXfh0ACL7yTWifmPxX5JP7ZrRMnTpo/FvOgWhdNWhdaQ676Sv7K6+6arBbgDlenJ96Zf/UmyQwKoxQ5/zVW2/bd+0AzC7KmXzJlTOnyVvnSqDCy3nRJIUCpcMqIi2JYfDMgq1dg961u666MuWZH5/dErLjQWUC1cjMSlFCLLkqP20X1YWf8qp82S7AK+gurspX7ppZkbwdCAroaM+npDUdZ3VHfV7qYIERfiRGYIyy8HbQVFIx+CTfhmXDZSK5D6wuvRISXF9TevIQWCM1SQX/X54vD54gWNkTeH9TzOJM84sNjq/Ny+VkBFraC4BvZPaaTjdWk2451HH0cPeQhK4+o10qinj+/eJqWbQAsvDhV1a8CxgJVlREDqCu9LWRciT4iSy8pDUimF7+tMo7gfBkivvpOdqOC6LpWF3NRvCcUvc11cRLYan2aTr3qtQgO8I2eF45jo7CQpIW88kczjHj7FHkjPJcyK0tQPMx9cCiXhv4IPDNLUGbhbqqHLihrSpn5JXlbbhAxq5+TOJ8yPBhze7IXKrtKA1KOMgYo2ZqDhoEoR80pC6yqw9eLW7cCW0gIsKRpc/Fe7mUDOnKevFFsgmrH8mjZ/xWBhLHe0ErkbJqlsXwV+wUbluk1nG9Ump1fRCee9F1sGWYql0KyOrCqvJCJ22w3KHtyhW4eDYeMWEgkDBH3bWoNR0Gxjy0Kw4jDijPcakFKZNYKiPzZNFn6lmjvVd/SrjC6aVty6iCUC8P1CUaIwTIJLdmMmQZBm0dAgGkZgnwLXsYvszebqF66M2Mj5jESJpiyz+xdfHYWKvdbnpP2X+pjG2NlxrFEMYlW0TYBCC7vt5MBnx+Gcb1h8qSy9JOwwb7fq6CAs/rTRb/wNvR3hff0a+V8JM7CX4s+oSccuVSGyjQWG4cNEWMXbmi1TUvz9nAtIrWzuJLTx70FpSH+4sEK0EPZ5iyMayxDZdxOmeLHLKx1qzmZgGW4A6RXaGl1943RhuQ5L1mcbjMdQVSMw+WpkPgjrIcYHtXmRYXuUJ5LR4ph8SobTOLZI+u0lZcztvux/OdPxesVi/MF20VVKc0M4Y1UovpyzpggohHN43vBPd/6Z/JAp2WI28J+9Cg808iyfNetT5ACJu49vRe7u/x+u9hp31O8bB+DjaLd3yf30+2s0umuzanuDXSXv+xv+fauuLOo/wQTezwP/B7eyu7BK2a7kXJr5oURz6/SF/8ru8swrizeTuHrPOkv/uo09/3rsmtxeLN23Xh0S9z/J5Vmzl89+Mc/uWk7/+zD05tLT7x8HO5yUqQo9du3DwdZpvtv1m0Li+6O4ifx3+HGntBvvq7nejaJNbbNh2s7T4TrBnaznDOjHcTMz/h3mR3Epi3xfwqvQvCAtgf2XjDptoNm2pXNlUH1+vZprrpfEyX0tboLpQYuoufl007/jaiTGV55YXxmPZrW8sejhaEEYbZ1GBLtm0123Jz6+J2u9VQD65Sq7Lq6lij02y1AZYt8bz6plfhnVP8UMZqqqsIiFW6myNXa/xzebn+mC+v1+XvlZf5mqOXD7oxHymvMwjXF18WBmmJQ+XtvLxYghlPUCL0LRoXUvCMZpEph3iYK0q57FoOmlf6LjYQ6TItKrOzlHPJ7Mzh0OwcfRizM8bxDgWNQvFZ1cItzxbS3U76U2uW8DQTBjp7E+Taw0JQNNE666qOVNMH0feuX9vgSzyPY/l85s/L1w8FveexJs08L3bJ2qcpcLl0JLIaspCHh+n54WHKHKSfO4nHod/9CrPJr2z//GwqfVNNGXegGT6q+5rCRiM7IPjws5E1z56rjH7xwSp4usR8RDt+L2ap42e9IqvLaRVwtVYvBaaDM1bTDSLGDDBHnItmiMUuj9Y1dK/nFXf+0f2NmReUtdQEKddRbLJI7RvaV/DzNOH8GvnqDe11CvMfygbcSIkBjUhoAYsld0P7Yn5YSNfzQ0RzBe1fFtpuSWVIYw1Jaa/iZ8WG9kbB6ZNZJxTk+bhFN4bVhvYl/CC5qSy4r0pih4NICofcZnR+ke8u4wdsyvkanxLQ1wu5vJZpTV+p/3xJK3KkhMk0XzPLf0gdkl1Y1PIVPp8aNOdmCSc0MTtozfVPV72eb9J5o57YnueZ7xPmBw9z8en7HJ0Czz19dnDGXD+PpxCcsP/Y5NvNl/ouJCPfNzk7ePZcfybuM3d9cw7hABFp6exgw1y/7ytytNSFidn+2OzgRXPB2LQq/5lZcaLNzpyVs+INds9em58+S0fr53k+o9NZusFK7hosmus/QyiO2cHGuf5asjtldrBkrv/MuAkXRnyPB6vn+s/Kn0GDUPi1c/1nx0U41pSwbM5cnytmB+Nz/XVArMm1Odc/I24CK60cenP951BJXnPaXP+5LtC6Wfoe3rGzg1+YMxormx0sn5M+TbetmWOv6BwyGpEsz5qzuN+MRNEH8u72nAiV2Bo6cYWa0Xm3ZiW3SrSMKyKuJNMVetEaHuQtZw0WV68QZ/vy2cFz52SFK18Bg7BeKfZDn5+Wv8Bytb6WU2Zn1uQvkAz3gjSm87X5s/Nnxd2Cy/nleXuWQZwj8Z4eV9r5s/K1vvLMWYbzGewadfKcWQY18aV8MjPLWH4u7fuceGY5GT8zf0acnJrP5H3fNj3LQH1uvs4nZ8zOyEQwOfm9brOtiehIJ3ACUr5Jb6yljx4uaISsVpLXBfJDI28L1EXSwH4cuxAAcNPTyi+LO0WV0+Em05ukp+WHF2kiPsEfUTp6lkCh3sTUZFxbXOUl5JKWfJ0rP+fl58XoHnvYhZ7n6sjzOh99Xjb69DwS1/znpeOtP6/zeJ76+Xlz2cfz8FvNf56rI8/rPJ4nJz8vXUx6/tTjn+fqyPM6j+fJyc+LfD89f+bxz3N15Hmdx/Pk5OeN5ojnDyMizs+AyyMZ6DwyICtnICDSiQsg9X79eZ2PFsC74hN+QNnb6s/rfPQDCpyXnl95/PNcHXle57UGLMZ/vEc4r765r0lVUnZwOTUyIEy0ajLwKwd3P/rUU/fgIYIGB+66gDMab3Hl4Aex59Slg+mSiVguGbn0YLoEOQVr+silQ+nSOtOyV5eaXDocFIOODpD9OXxnDYZfto+qGRKF1E0QbyequtnVCCqWkzvavL21hwTSRHj/fxUqLCAMhQrLGAgVFi5eFbLFxpAthkKFBQWECssaF4dssT5ki17IFkOhwjLG8ULFwatmnidxgm+plTd/2izrZt7T+qvZmYWJtYLFr1p/V86y4OLKPpt32DPPMtHWFk9WvkVaNlihn64tG6tLvmQ2b/JMrMReS72Snq4IJ+yy81NnWcXyRVq5taiWS6qnZK2ep2tv5wvTFE3L+IyiZXqh9oSsNdGL1XGrKqvccFWVCXS4qk7nq+ur6mlizaxWVVYlr6pa0X/cVfVU4WR+9Kq64vhVFWQrzT5vVV1eX1VRjCy8qk7zyRZYVZEmTr6qrmLtPHbP/UlnNbK2Pk9r68kW1RmW1af/6EX16SHy5H2JDbVF9ZT6oroC2cgLdJ4fv6iKSbwUbhFRTyjcIvhauEVQtXCLkCvhFhlXwi0yroRbBFQLtwi5Fm4RciXcIuP+aOEW6fn/SrhFGvhgr7lc0sCBCjCDgFvnOkh+pj7OxXWwLtQ3da6DNeI6ODuOsckJSWnOBLlDvdAkCZ1N3g2hRxJVvgDTiugvU+QR4sXTx7I323Ipgs7iA/iWFsvlqNVM3lXJX0sOVmSC7CGQS3hYYba0qAItwXgJISVX0gBsFUdraYdJwxG+eGyYJj3YERrxkPAs+3GuYhgErId7e9kn7Q+Pa/wSefdzWabG5KpLKu4KxUFSpaCM1JtJXSovYPlpVamPTeHEqKukDvkBjpB6inIitbQCU0hSpSC7ntTScO5iHuDj7tdcx/F+jg+pHfeBmVhR2myJSA43fEkhQT4rS1yNqBNEKUW2tF1ZBHkhS44rX64PRGSa4WuLR4AHBUbVrxVJ6H4cFVSVKpy5vkgiKLVpj4aqzuhMhOXXREU1yXkVwfl1tioQSxRICPrDclq8S99cJTo6taXARaloZYXeAx5l2GQES68M5tSFs5Emcvmm5aKRUjEVpKPF+fL6nYfQxVISpqBiP7n0Mm3NVlY1OrWqzYr6U0d5SoUWTaamzPCBZ7OPy5+U53HKN6RLL62KeYizrDp7kLMl9Uz3TzJMBUnpZX9tx3Tww4KZWPGqdyT3Q5l6Im08+02rSLEY1LzT/SPrwxEeFS4nu44VRn9ETRI+6eECSNfjmyKC2FPqAf0yrJFWrHwdn++UfkBm+Mmvd5tP865BSm7miWZxnt1hklv6lmJTogQI0m3UGZxJn4EkcvnMait3zdCqJ2SkCapk/4EwAedtPYaTAY/9i+6SqtpnJq9dhV4QpBaLzbrW3ZIn+L21ifcTv5+TZw+/j0hS4Rd5Y0q/hyVv8Iskg05mXetBUWTw+yVpQPh9QEoOfm+U6MHvHU27fQNBsN93C+EGx28QbxJy+EVEEQfXcmOuaP7ua/NTdzCwOZx4bX7KDiw0BMNz+uIdzDQTTl+yAyMQfAnTr82X7sCyAzbft0zuQHLhkFsW7RAJum8Z28FcA/Zp2Wvz8R1GKgFx4u4VO/qQO3Rfu4PpxQ/tYO7gXfHIivyU9Ii9Ddj0O9+pHX0GE7d0dyAPccgt0ztEDe88KZk8E3Tn0/RaXsC9y3ZAGLjE93Z30GCnod44zVd6VNbp2Q6ED6pEHj+j7JglylqQHXe6+lGL3g4a9Wn5Gp9M7ACOSEV5kNdggq2KqTx40I0SBZ3YIS4ySe3LgygDxzemD63xkDqw1gKtNVwEb7Jz+Fb8ZufwDfnFX4u4sp0cYoMH9IvNAT4ZQLL0ev1ChCDYkOYeVlG0dVCj6hdfFdZnxsE59CkZbc+hr/E7eQ59jQkCr1Mp2e11muCFCeYUXVrTnNam7FMlrf6YXWHd+9ZE51NHNwxKg8TPxO0M4aJ9YT7NH3m7cZ6tE0fJFns140Om3Yro1o2OW1mM7Sw2bWMzsBKpf2u+epuNOiKdiMymivPkqsiR8IgungYSd2+ZWYlOlP/kmCsgTDBOHOs2JzW+1+OfoeEtvti1peK/Ugkn92ApLWX00Y9ceVjn5Upqe3QYXKTLX8BdTV5cugOTmbj0M0jw/KARQevRSIfDMUYduxwnD2JmhTGZD+R7LNabcDNOl+xobJdjFLIXqukoRXKo1KRsDFYqt/PUZLceA09kx24mnpabCepksIb6xCVTDY5NUdfkBG0mXZmdBLgZv2D1Oa0pZ8Xny8flMGO81PKprtPOlqNW1CjRxMSzqg7FpOhmXdDTqoavSXEvj9F+Vw6Jds3s8xllZ7PHMHvAfJE+gNBkZGLnXlNw6yfcSMiPjZ8dGumClNXe9S357iaPNTOqhNNkQj2e1YDIXkWU1LUWy9w627QxMshmWew5DCyhUdz45YbMDjgF0RGzO/zOVX0hnXW0RrYqqbZRihOhwpG35Hv0dn27zlarmIBWJn/P8kVn8ntmfKXPdX6r2NPfogfi9LJizW8Vj0ZKo1hzWZ+cJfudKTTDTc9QuowPflVLJ5gahicYFn682jAiW8Xdt/1xo/j6muKRh/5EvxljnzplhjNwsDzsHPb8LKtOT01Vnwozx09aJ5bikTodV43qpB1upTYLpqbWS39EU3uUhVFBOPL1ynG9TBO9yfeW+kAB0UkR1LjcAQBbNG3YelLFkxoyP6lpX3BuHHtfsJF75InMhFbe433Bi+PY+wIBg+VCqY3BZo7hW+s3g267K1QLcydk2hxCByaf9eCP6kbMpOzzkofuEjaueAJkTtB+d4t7nXI1fghliqgjusXraynigO8mqmGJNd1gik3B1iJFwSK7iRPVKVS+8d3WhgYxAtwQ+9l2gYHsFm8yWZX8iUUHclSIoW0vbBisMFact43JdvsLGw+pkqlqIqXoqWpaTtpiQqrXToTiyGDiCWe8Zje6BUhDLyGCcLN1CW0S9zPuIydKjJKunqkbLpq1yjzYpVLmeki8EZBy8CHAJOh9aEnWNX5bEymV+abszLSL87mpYimh7ZzyHoJqBat7V5xt/IU6vkr5kFOIOl+1+0edQuj3KuVOp/yvYYpa+U3sa4mi7+MHoXB/r+TdnLEpt4jiI1aLUrg3EFXAT0BFAhvKrSqpdLZ8CHcZvFii0qrjVxDK9adbfMycX3Idrx6/FSaTA4Lvs0+NR5Di7GqMPE1vXa6Pq8HP2fO58+fl1C5+eFobwh4TiCmzJjE45DwTH6b1wsZ5dH+/NPifuomGo5tkcO0ZpEuno4gdED2KiAEFnomREcI3fc3CN71UtqfJ3++GW8sNK0qQOPc3i7HsNyL+kdT12W+wQQCF8ZT8nfmD4lNoDDFrsaU2vj8e0yfVjGZsSehFEeEEGuiZZUv5+SYxxEtGULTSVnaNhPJ9SH2loZIoN4sr9DeMYOXhweHhncPDI8PDx4aHR4eHx6pDAdgOI3nr9wC/xTEINRylil8V6BC/SPjF/mUy/pIL6zjCVXEn57r/Qc6R4IvHloY/ALBkaMtc+iwBGqIt2rKYi+PrFy3KQb8V92Y3aHjK8p29XBJFcXCpOlk0RbP4F5nEL0fAu3RLihFQvkE5jGU7omEbv+w2r+cqBgwErDJrNelo1qt2Fqv+80kz3+lPom8+WvgyH+4FgE8F/IAVJam8xxqXFscIdbeFI5PYea6+2uAWlzYVZ7S0USS95/yyOs50gQz5yiZHCH8UjZcolYKsUOZThOmn4ysWC7GqOBWnwxJCoBAqiDO0p5RHZ3sgYIA8CBo8nd1sOgawWmmQRXZqE/z/IrND3CLlgW8R2wW3AGIiO18+JkKMEgupSnMZHuI4l+on+c9YJKaXpBaA0Fhrf2C9YvFMveh2N+8Kjc239UCnTwgUdQMyRcQ7MLycgj4rWWCC7lvhW+/54Qf/5WMfeey/H6zCcApO7ni5Dtx5/PXEVz544J6vzb71rx68+TPVFUGYg7VfoT2PfzI50i7wpACKEQZXgXOPfzIBhhd4UiBFPXP8FSEbDV8DPm87iZDk2IDl9+fQv3KoKYlqFVgkLjgoW80/siQCBi0rt6CArAPSrc6FXNc5+QnQGOGLk8v/PL56R7pL8QwUxa88VwiEdM7mL47RIDq70j9S1hwhvocU5bIMJefQjh5Op0ZExzlM2nQgkL4R5nihlgXbGOTrgZMXSKoEbApAv9AjIEAX/v7id17wgtxK5Ohib155fdq/qmTYn0iOmwGE1FepnDEd/C/5wapKPnFkBwiB9aQ+mto6ebHSSerllTrvlf3majkf6AGrIsIvGap2tRBh1SKooWhoXsEyo1tGapD78VfqAo2oCI9bbluwl1Y09IuoY1I9LtAaAoc6CgMM6DLyBa7TzNBCjofOneLK/YEdfy0oAXoDCioy/NC5q3KJOl/Fp99wQXr2Rgb9mpDpW7KH7PCJ7ZOJ4SPdcmLYU00MRgqTefJaGYmSEDQPyQdF+P3hHTGjDB9MyH4/SAAO9aLArCcHcLl1o9XWZ9ckINDsvPw06wxfM3Q/H3nNMIxF6QVi/L19kKv4iwK6q5HKgeUvrkHroebRGtEHNHWIL2BeSTQXDQtYlURT0LCAQ/aBkQKSV1nA5IzhoACad9J30idPcwufzCVVa5XBFwX/V8iBurM84ztcq0vfeE0fKGkx4yafkFSFqqwR3ibVoCqqCWSqGtSKmiYqNGEqqgmy3LEiMoM8Bex+XsUlVL+LFi4nJztbp6okVwj7M2h0p9owhF2bMi4LMwHaawVD0F63qkNVWiaTYR2qwsYcG272IwV001RTyLCACYZeL2ACnBPeb9jWYLhdOrmGyERm56RUpOrlo+2iCSXeGkO4/tZAcddeGrz2YVerZzMc284Om/rG8BtlvH5A49XhIY4GfVIEb0jRVx3KIRPNmUzWyO2ySsslNMZSzd9mSPMwJuKLKvq+iRtIGCWqGHVDiuGgzKqw/lox6kH8y/hA1Q0CpNWz1AyiLKsgKRrU8n2qEjQn6JHqpXSJOi1F3Q8qhpzuHsZsSiUoH7eTlPkT6GRI7dcFaQFfwN9Y/iPpm9sbzwQUEUbAsS1TGCH503DVIWIYil6+Lou4RFqOdM2hiDS3mZECcgRHtqGHY9W/LuISaeKZFn3EdIoGlAY/gSEWJiDgScWoxRsn8UNMJvIJe0cpPnk11UVIlqGEUFImKAtCWyiLlMeE8ohov4tSVPdqMAf9RfTYoUCkPAh9UctjXHlE3y15LdKsFfT/x9NcKA/CYtTyELWE1i3LG8HAUPb/YH+oZKZSOlAenVoe4mOovC3m8TGwJ6uc0UoyBln1a3coPOPwDH7b2pn0tAw0u4LbsC1uCcasltS05GLI1vLsvbAXT4bpwxOt3u6e5e1kirINKims5H6L8q0z5I5fJ0FN6ir0sufGMcw3UlfZVZcBfBvmnfHbgF041ivKZoxN2hRYO2wdKUh4bsRN6Fci/op9TuKHkWZbarmNDYYn2lcWef8AnNPF83U2eOJbhw5987Pv/caj4lWRPV6JH/3QrffedueXPvgLROaWtV9pf/G313znWz+c+94RbsRif7EW2s5VWALYXrFNXzwzbQo56Uj0Y2wTGpXBQ3/xxT/6H39yy1cG8GjsGpw+N3j9W2+//fpPfv0d7959FZYYd5bR2wgJM+82ib2OVVi/bfq426CDiSB/9duWHHcbk4FIzmIDhZElag0QVe2T6hs1tPoQ428ze9xGjDU5wQ6ZjWQ1UXxObTHNvW8P7/P5EGBvGe80bkvd9PSLtRNmGhp85qGvfOy7f/0H33r2Lm3FHfJ3atCd09HFuGc25xym+xI8Xafi8DLCbCzjcEmtLvMqMls/Gbzr/Z/41rUf/Z03PNm4Egebn+Ch7Cd56JSf4CGAvoPmrhQCgH38TKjVZIaSjlXMVmgBZRaY3hWG00xIGjOee30zF2QQNTrY4onLILjP6pGUekHIXMrzIG93zu3IGXU1Of8cOc/La+Vc/V1P/OPXvvv2f3r7LaeqmCIijZxKOo+8HdYLu+SJ3AJS8GFHcH6T8/p52SUHM4Svma29izXkZ1hDZofvVFKuJE0ZImRw6GbUbofDa0e8DVLwRexncTckgjPzGqBCZ/yb832o5SPdM5tNhWGFOzDemgwPq/2QcIYXaESybSooLv6DnEjZO8gbDnwqcOIHTGQGj132P32EsU2OLFg5xoceo8ND1LZ1j1EUz/YYldMaOl5zOOiVE4qjC6aBJCICKU6FX4w+BR9DEqVrSvqUtvQpZIzRik1YPCesC1E4CbSbIt5m97n85jZeFPeI6FgsOh3UPPgCmycbYdWxek3xgPaHByHnaZ3VOIQfotAN3CW3qcPYjpNz2j6wOlNCr/h+wm47uwOkKgi7Mkfci5s5iLIKCyTepCmusgWl5RTIV8B+PS0jei9bJapD+dq4NsPGdcq+yaEL7vDw2KJ62x5Vw6nGqbJ8NR0dJdBHfLMys/IeSlVW6hhU436ocuB1WA4+Q5nwoBMoWdUOaBAl3HGGt+40zrGKL6Pa3h/UAx4Z3OV7hn9QmysasWx6SZMfMq3MYlVC4ICrmK4xEwTmzZrUwKkEV3+reCiRgTxemWnskmg13rcjzUCb1hmNv25pAhdQTaSLijg9vQFvC4WLtZCth2Wi9fLGCZjWYD3ZPylx4NFxmJdS3O8FrFfwI8tOdXYcr5OdakFblmN6J1sWdqoFbVnMkZUtC2FCtizAa4qRTld9nawOdCpbdsT0jrniiFdrk1GgX9+ebPA8f6BnIwu8opr9ElO7ULyG8MKPbLOHjUbxfPmoI59ypeI2j5d2atzmiD7zuc2jnNaTpocU23fIbW4r1od7cJvbBAO3OcEDDssEk7jNGQ8Vt7nEtsimU+M2Zw4LbnMKBDgZHnMamcAkzlA2Gli4OC72GDnVKW6Ku5vZH8ko1cp+UTYnrmmi00yZeNHbkROU5S7+kBGdNgBpIf1xL4xZIAeFY8KY1Qr7C2hAq6IJylNZ+EADGrdF3J6h1c9zHka4YZrsLzegGqLEHVUZA5aG1tB0KIPIMAMp7quzY7KxF/uIuVymEAVYLV5Leb1T3lbFZfYLDUOUnw/HexB8j3JcvCcCLKge8+1TFEt4L+yNGsFig2lidDyP9vhdVedk5qc7hXxjJNyhX3r+AfWyYTySmvVJVPGTP9DG2MFI9oyVwUjEvxKDzIFDXqxB9ktxvEmD7HwT0JeDzOnnapC9Io43apBdlOjYQZI5JNAFWrXguDexF0QyMjI5evfgifuOvaPkbksc/4O/ffK6r97ziX+61w5WBJ0g6T2Hn/jKfYnRzVHmSfvC7O///ZMPveX1X0iPwjgx+O63Hz/2gUT0pjSshYNbjn7x8du/c/enzk3x8kn69J9/+IOHE/1bijcPkxxjgQhT/mUHddugd93sYN/vff+tT33uib3faiAe3ACKRSuHgy44Vq84ranKQGytR0xYLFZ+m2P12fxn82oJvTTNeofTkLVf9gvHEct4bVvxlsRCL8Z3X1hn8q36C8QZpD03WiW+6K/dlr05gqfILdWinANBaDt1RD6Myf73lNnu5SPh3IBnNzJ5ADvOTZkr5lPr/XrOVcuzMlFFZJqPj5YCJzC9wRxMJJTI0h448UWxJumjpqfYSu7mRQ5BrdDiFWqU7+uUPbWUB51CsO0qRcNuXHjWKuWoU1IgfKdoMFbB8lOw8vZRrPiAHR10IV05wik4wY5DbcshRC0LzLgEeKZNh2PwCOZJy0Q4G/lKOOpOBOSJ4anAO4oVo21LGSxI/HUp/kKKEORMoWtikjunpU+vEXlUd8peGCOR0rIzMtvSWPC/uqX9gRxbR3M4IyV6Tk89p+w2OMYPu41TXLsACv0Y3SYhRxqTd3dbnd0dE5MkijLT6OOJL1TJFYGJOqcl0LtNdMBq1HnF+W25hHDoMI4Fl5QETWDx0mGlFOlFykNUXz70ANHGQP+UgkwYlGXaliZusoqDTJtLHwWNlAmoAiDGTHcFi4acwlhp9AGAl2jZCshAaQ7MvqalRY5e4uqSFkBuWL5eEhnGLfKukpRM9XSfjBvj4TAEXQqLmmhCR3yDDFYUO5kvHuNizc/HCEQRmPninvbIxSPpIl+Qv/tGLz6WLjIJiTJteFE+QjC/iAMNJIBZ0Ijro98DLUFmccVpyYDu0vi+G0YLbPSjSoN5dOSVhleqJBCojVwwflKlIALsqPNTugDVZm+kgEJgSkeZfVjzgxni4lAAizY8YeZaCErmQBoIKPiEp03xiyVWOX/IcPdydlAHKiWmVXmOmaXRl/wRzesn0qz0dn1ni2vuDpGXXB2DzlJe5hmRbIKFj7xxelQXbeNU5URROSot3MQaQDG4oPKTaI9IlzHIDN2h9MKqqdUw66+UerpTtZnSNpImvVQ9bRNptNNI2vmkISVVzWqlB2kXeVF+izCE8qWU19d4azzFBJgoHTyYruoOHgQ5A+pZOm8wlPOIf1Z38Fiu9To5gWQKtSgnEMmnrYzeKIA5081XdaQYkBORiJBpMpwAxSN7eZVPsdMOwvz2MJwHJrK71zC8lA3PenbMPih0jl5ih8qUjWJYNbPzqkiC+UggQV2NQIJkMIz7x8vijlrqSQIJ1qITVoEEFZ/yuAyxsp4kkKCEbJbR7CbYX+MZsG6cuJ6yu96QXGDckJqUE8CfoavKawOVbmFIjjNyUXpsj3ia2adV3b0mS/kS/ixlFIw3OuWRWspbnPKNYUpE4bR24mC4ZnwuXfyB4Gtsw3nPA9HcOXavA3L2Gn6AG0z6yieI5lZUmuxmY9CGn1oSsW9gP5tXPgpTicVFX4q5siPR10BSCgQcLLZ6xmLSjWoJrgBLeUoYujHk5S+rs2ZjFtC3pBCg+216rlwZkvPFgYmkZ7m62xqLRe1ILGoRlQhWntFFpFzhyrXkTveitqcatmLqZZxp2ohZp1r7vDL8ZEvfyMvs58QsJ22Ipiy9lM7oAoiWcv4yJuZARQDUveLyWWAZQ41eLmO6b2QZA/HihWVkVTBmfmSNq7ur/vTXOK0SWuNOtHxp2ZKi0qXxfdePFtjOAbHGTY288qe0vqmAWt+k0iiXMQWWLJcx011qGRuuWzYsJPLTnr+evqpWH6lF4nuylFgcdM+xkc1LkZaT9IGswon+ZuXbcJmav0KNLbQ6dcrVqVetTPSR41amdawkWE1GVpyfcLUKRb1Xq+HKdMQr06Njza4xjaxLsadka9bvavqXaEsrsZ4g1DOJLorE2EjHJEO4NtaT8JNy0DvUIGk9qa0ozshZCpjvFSVeY2VAyugGJryGVxRhBVFbOBSWmJu9G1UoV68oDhcZ87xfJ4y+HSXKVHEez3TLFUWZ8d6gIY4VxZnicJAyhILpuAwV2r1KrWUY1ed9Pa0gClSmCnOYQmzGOjE+gDgEk6z3qKBjEXZwadHSAqpZxjj1QzcX+yYHaMS0aSZyhSGWTl67Iva+mcL0Oe6Vwol48+AdE05S9qhghuUAGiH7m3bkI1E2rAqUfVbB1Ca8SFFizhyIy+2vCT2FsjXecbsSUjxbxRpRPNtHpAYk1g87MK+EUXn15FRPfRbeNams3RQogJvVF92vlRbV7nn+6CxOxP1MF7EV6t/m1Qo3KUVO3Bg4evkue7mvhIT4AqbUEmVSFQxXHr+4OhkCXJFWDUM+yaeTLn7tMvjSumVMjhMLX5XnLIKVPGcXEr7OLYUvIe21eZfV72V9R+QWGNnuHOKcFat0cXr2s47W69Wgk5kw/fsOKv62SiProLUSUyp9LJ6qThEda5nigEfFF2opmpnGiq/UUsTRMFY8OkxhyW3swcGYsDk6/CyHHpZigDur8SBdSJGMxoo5+/iFaTyK9GanULAqRZF8XPiy2ApIiS7BzpOv2tC4WnWT/trlGC71TqGsQ99cp4Tdv/K+3OTVwiHHEYGHVuM8+x2HuxYJNPuQe+3LWBy+L0JlWdAVJXpEFIb2/xD80d5bi6WYWIoTFinkISKXp9+7HXbpZnGHg8Io9UBzqQLShAqm4yhcHznZLXL4Kb5528lukXKn+N2T3WI9+SF6oqbbCQmhU9UueqraWRPgrTxKFm4ZCqUOj1NpIsuj8k7QIHEnTscEMYBIT6YvDQT5dPaCXVuWnbtb/SUvEXm2VSlYyyHftk1QjqsPihFNtniHMQBbI64zM3Modg/W96WLBFy38nGcrOT4grOWA0xlmiO8VdBlMW4zj9n1q5m9TwPurVr1+MNtluFa2b8PhHCxl5X7V3MXWxPcISvhOdjLwU4mI9cD3Ah5KXgtNcqe6dVTdcg+qk0FKpSL+8sGG/chLGmK43wTBuU6ASWzENiPwTgwD7FyLhu8kGAX9RsOxg0d33A+N5w774Y74waYN08R8+bINVwZPMejgjoAP3p2ijwLsifNO05VnxmtIwJxN0t2NVPd4L5rvnL157/wtv99z27BicSmvQzkx024p+3eIdW54GC7f2Ub7yxf9VTjFdutHubOd93w5j/8xJ8/fMvXGuA4t22PZ+rJr8SUweTuUPuDG+79u4N/89ifPf4fX7mNgFOraRy9lIPlvj67ixwbcMt2sydbq/srzdjZHXz64Pue/NY7P/XlP0g3r/LLYb3YBRYI1i0h/JbluhvFFRZi30TdRceim06FxWIVQJdlAvKADIt7s1CyrxJryPJdcHedCsZmmQBCIFp1w6rUGyY9iHa4C0xRMJdu+zT9QtY16f2i30tll45CXeUfDaXD6vjTOWx1zZewV6bjY0tQmo/1Fqv9JI/G2+h3ewSLgQnd/e6QZKXcwuRirTOLLQ0w2bO8KuoeEyLh4BVBNULy+Zz1Y4JRUJ07xHma+JSgR7MNBNIGAa9Lxg/FrehPJlIoLp87OKvBSulJtnEvbGwSeyRzqzGtYDTMPmAuo5gyW5owbZOs3MDN8vlGYumlaINart6oIJTMSZuYI5gvd+eO8vd6zYTtcg7DqS3NYdVU+bAmuRPcoPWweOIkN/RUJSFN0lrVM8BuaOnshWm/MnTKrs+hPMm5U0f4jKtFIuL4GY1czuQ6WyYJ+6zGJlknRXcb7K+E3yZgahzxHaD+0EwIuQccB+L2kGDU00Ty6mDC7WWvFmtPj++3FsnCbbuOhguliU2o0cahSxExkYPre+Mts6ZO2G/x0DpZ49FLSzqLa9kfxwVHwVQkWKyJ+CzFntpqlmaiZA2z0ZA5wFG9EqLBCyeCJvvBRNcqsqV5rAGOx6Ot9o3jZVRKwaD5zhGKpJSCQPWva/2HPq7Xr4nji/u4ab+KmyRnJDHIF14hUenSOL5IYtAl5sIkau12BopIHZm2X8arZVg//QKTeSpMyW3EkqfRdt52lfgsGejdOOKpvHupHnyqfUE8xv2dnS/3kz0JIcPu27Mg5KgnTJ2XAm1oSqvBULcPuQv1S3Y/9+H5fXzU2VQS7tQKeUTs7Pn+qIKpwwRbPo6LOdtrP/Nie6v7cFMfl3Z2mO6sfJS4FzsBG2rfcK493H24sY8bPAKekQq+ie2Oy/UN/VKOIyKI4qV29cJ5nWZzr+8JfSpJn1yILuznZW9iYTWfBeaJVMTH9UuRjopNyyOE5qmeXccuwXF5z93qcLSbtJzjhabd1Evwc1b3ltnY/NW4p/PIWtzcHfyRIQFTgJJyubuPbRPb/qWEuBVi4VI7s2uAyJTCnzWiQxQ9hFgRpXiaSTGIY4/EHWcKHAJ7q1k42SuYB5X7fIPowkWDoqD4fN0YQvosUgj/UOOQARYHiI9xUDO7kr1oNvgRji5pMnsSXzVGaM3yQDbWK2gx+uvOaMjLYkZICqleGiUEbRHyWKPkpvHmYolnECsLxcD/3nIKE7CaASpZ0qE+SmswEEXCWwqiuMg4QPA/BgJGaGlvVbanPKzX7LeVjUNSmfJUXox+RNs5/kzA3SuujuHzrN215/00B3Ltj012cXeEkC1azFHF0XvAHOiPecjQdcQ00r404gEVj8clellnU/ZBPN/N3NEhd4iBZQEd3ylXPt0ilWCE1glndGulRUiOsz3QHOn1s3+05ZIIOwKU0N8CXx0Yw/JdeccEDbxFmRvRFkgxWlKgmFVbskdkP+Nx51LGshQgv5P9m+AUUf1TFhFXigIbZub7EUul0NxanL6Nni9KafRSDssMO7KsgGafczObSzpo2u4CU/a6S3OCVY4TrFiu36ahZnbhJX1ZFfuL5ao/DoF2vni1upFMl/wAjdQyiiUvSuqqBnZv4XqqYieqJ0u49q/FrXxHxxYr7iiPEpy1+sT6dYQjvcnCPvw8QJfmffatFloaGUQroRYp6C9Nv0B0EtggygDDzjFef2eZZj/1KG2BiMNAcWePsgqyYyLdW6Q2spLHPNlbhSAU5k/8CfqRFXKJiaiLXdsE3lc0Uvnv8a0oz7a+AlhZazGmR02WzbhI7rw1Vz9EZRB4ykSjT+FrRe6usGps/slD+Sm4a4db0MOBYZRGUMGyi1Xb8MMlM3wnt4lgIsk7SVsCr4NUc7Bvyq4wsTPCmTJvXK7NhnT8VdBnv8kld+B4VcXvKbNiElVFnVW5Otefhwhjm4aV2YvNPGNFhZooKq+c1Shog2gqjzoaZrPVmLU2EVlEjZubHFPT2AqsOOlV0/AKRbiKNlGP+/HaRNAGNUePiLTRHBPeeyWcpyqpt6dW4SXM//WG0CQy0gbzH6o3hSPwmnbdXUZjhYMoQuklHrqestbOwnHurcpiCMUz0f7uQrUHy/affHisOa1ZHQE3/L82ylHZrPlm6dB0IXaQBDDXjpYGlU2JtpwqHv82Sw9+iYmg3mSOrMa4rAzeIIprqWQdrvdMM3o7hq19aWTPcwxc4ov0iTSf6NsF11YvClZ3Ke4ukF+McTdIyeDvHfbMwXq3FBsMPZpIEfLRaSDshVIVdoFdyErUWtK24jCbHl8wCJsTtH7BI9/vgJKIkmkudJTpVZ5E+eDSh7IC6h1ik6/6V9KexmcliJsWo/HyLo2b4fegPHJdnyiuvmZv71I9EgP1gqBUZ1OhVaABFxGbU7ZPum3rNlbdjvcFXCDO3g7O48L2Yg8HV0gzJfk/RZdW+yDDOBS0mb0ZKVX5XAtsexQv6GqsJgTTJFqVeJqR66jLbgQsMayN/ko+J4r2ZlH863itXuOv4NjpDpaP9vMPbW+mqY3XsOiBGEI05wiqvC7o09FRmeHFuiJHandLTfYb2ZuktqgCqledSeZFRTJpEBLBwdK1hlq3RX4qsXBGfuPaRBEjinMQKFpo6ctLJj/ZCcagA4DCAqnsYIeHry0hv1prSmAs0nN5iFxfw8huDPjxelmKHWsSPLOhsPbEuPOae2kcELlmL4vtjgKE9KcCxhv8sbj18FKjfkWbASQP2LHhwOCFmZyEMe4GctlEIso85eZbIy+pi/CNTa8TUvjfCXd8VDYnxwaTqVMR4iqILklyNGzyAJZgYYjf2haMGIAzki7Hn5FyCCNqOqYS6BEoh6I46zXC3R0oiy7UCZJpuLQ7+JMJaN0aoumrAa47KrFymwjktCZgqXjwxXcCBtgKkTw8RIdea/jHxJUpQJpqJZpl5NV4M+jv8pEbhofXjzyNfdVP7xMHSjMaUFzPVcQQ+HtLHgB9QfgIgGQLxDR591hz3Iaf3v8vxkk589QZJzHpVIyT1JBOO2ScHF+IcRKEmvfdxwKyGWpw0nTtaC0NlJr23MVjwzTpv48AlhPirLi/JDkUhSUijUG1wcpYY1MsUWnBpjjExVUch87raOSVciEP4YBL9kdZQJJnEjlwkvyT7Lu0RwagJ/W4YAnEpCSLD1GQ2ud1XKbqAb/vL/UAVDFxc+AEFNAnqds5G/I03szZkKfxQYEyhnSICpI5pLsU2mCkfiJSFTUsxwdVV8XqBIMrUk4ZfdrZLzt850koEMGt1igQ20EEc0IeRAktZjIyfmBjqdJAATJPowHwgd77HgFqKuQAq3odB5dCNVrEKtOOh6QBtzdvuadCzJOahmTXl61eKbIPO7x0xaweVn1RsTustlEBUlORIEoDodHsHudMuaA7tWbJzmsyaTFZLGTX90X0OA5xPd+u74vY9UWxcJxd3xfRMzkG9Xy7vi8KfbiQXZ9E2/UdXxsjJL+26zsKuXzPwh0+CCrm2/V9cSG7vi8sZNf3hYXs+r6wkF3fjpZhzLev7Int+vYFtZOz7Pqy4ts7Njyhpatziu368SnNBlXZ9zXj+gP5Y+v6cfCzH8uuX6HOBBMwcCnZ9dtDu74YxW3Xbw/t9XKttV1/NC3s+qNpYdev0vx1Ru36eCbbrn/vWLPpENzy7ZRWd5RAMDaKi8cIJtMZs1z+DenZwqVDc66Uf1pagIq3ijseuNd0SdoXWhkfMaVi6GR7WuJJO3kOb/xROSA9ie+8xVwDR1zJKyhVQ2TMpKC7H+DQkVBbg3bkfOj+yJkwT5o+jnuBY425LN6Ea6bR0TqOEHrK16MUOHkFbk2vOWEFaPuyAgqdXVWAMH6mOBS0C5OGTpyDNgc6WRNXotJr48rZKkFV0+IHw8PHh03xd8PUWgM9Mmyg7gbag4zuU8lVV27BSLRAA1EF+Qro8GyOrqha6DIfiUnvkqr9oiWXc3SxjxQ+TM3PVE0zeFt7soZ8/N6TN6SeR56kC3+1E134EFucn7qEYmehCF8G5WKYTmyZ3sjmoPQRQkJw4IwvhNnb6w+LBn8/W0uB5o2/8C/VhY1/bVsjF0HLsBILL5bhqVu6JVkzz9+7Kto2RIfIp5YCLZ7eNUxRzh8VSZtNCnrBWY0Dwg4+IBKimg+TIhKLOMzCF9J4ZFat98Lw+IVVijD6LlRdCtgHRh8HmFR+yRCAGsLjyTWzNCaYYTt7SUKaym/IIsEQcCgnGWMmDDjcD69cBThExh0FHCIHjgIOkXcrDILQvnjVHC9AgDzE9GrJ4Vb90i3c+ENd71B+gAeavnUNkep2t20OAfgU8oM4m2P/CLRBdKbW+MnpbXCjIldNReB/6vYQbl5xDZJcU3maZvXBSI4lSR9+xJePuo768knmlUbwOG8+UJQsHfL0zN6RuCckaFQP0n1FG1mdywso7GMpXvhZjd+Hoo81PW8/v3k9FH0K/MrhOzn0yn5W493cAFmE3ogNSVEuGrcTiVSX3jGGForz9yisIr83jYFV8kOfwjzTgGLx2VIRbWg4zMCGhqwA5Kbt9fiGButUccy8eMKBlEU86hThQMoU6OLl+TZMUVHAgRyxI5+Y47MztO+9nn28Y/3bga9d3EiHQDOFm5ZJXJx2a6Qh37v6Z7TeOSZCE8QNuywyEca3onw6ouxoetP3lTaGXhUfTQHPJXm80dl+ieHXLt4pSdm9ft4fCRXiGFcOpRXQn00fNW6wU2ZJGZ70q2ImMS7pvae3spBhb0hoEMMx6g5da/t4WZ4Zx3kAvu3nUnfoWqNZ7ew4XiUr1PqY1nDrRjWMNpF/8jPC0A2orsQpCYIguE6JU1LkQkW1s2m3PbMo3KMi9G2C3ZAqaCu8wtCnJvuxYuYLaBMEENRvStZAS8eG3NhIPFnagNF62AaszJfo8vUyMi94GQpntFzFH5zwBjsZiF5QYBeQI2JbDlLnJWrFMmm7kVnGTmoS8ZGN7uxGsaCH7cve4GmasaVYTuXVud3FK7t+skxXxvpkua6M9cmyXRrrafhMvl8NjHFoXlNbmj7RhvvMUQTPalwvGRxYi9241OzlIiTUkD7Fm7yvGJdPb4JgBRxGcEIxksQoQvsgaKv8poZpQFkad6IluCK8Af2W1GHp7GGgfa/6QqrCePEhLYXVmUBcsq37TJZqOWEJH3PFhsbbdbiIJHUofXa6mgzBLKN+gwBcfmF/SWXGrQG4eEZqbbk1ob/C5iabWGKo/uIJsFgVzOpEYC0LISeDalX9710nuUH714BoV5M4qBFtDB1Lt0rSTkNCSzWNy8szYtqW59KIDCdseYVGBNx0Lv9rU5P4yNMxGq9NYoINp27wWRrRZp0xjY55lhD99+7dK+dyDjHysmXQHxyr2WSUV9IqE6ymr06esa3s14XBbGEroL2dhjoVLzqCUbdbuzEUhg0GgwF0k3wwqSi9EIPlYZkk/phPVr5yuiUtEwpgojXkK38NEplit7ggxGLpfIt9AkJpZ0JR7JSrAqDD35Y9XV3fjtxHmcGuV23/D3XnAqzHeZf373au35G0smVLtpTo06nBMrXBASc2tsHZM8SJkwEMYbh0YCYzDYWRTJsjCced2pYcCVsuMFEH0vEwKag0gwO1iUO4GCYNahPASd0QQgCHcYiSOLETDFGbFJSr+/ye///d3e+cY8cJSUvHY529fPvuu7vvvvu/PP/nkY0iCiP/MoJW6rcjWArplA2qPizAN5UmlkXFZ8qiAjcFDwejAoNLdOrMUL4LKILMCz4CFxJKOTBIwW/pggp0opYvMIRMQXtJ806rFw8mF4Ad274ONoZhvx3U2PnrAGPC1Gmr8GLS+V2zi5FkoNhOLsY21gC4GHObu8t7Yx5yPlJfZ1GstxjIDCDS22UCfZ1SRoRb9MZbGJeyQeblI3uTRF7vFs9X+gqJOrB5qFDpZ8X6M9msEIlmdNFoRVrzxOZIlUQweYKAy2J99rfUy5/BqV2s7/ntWJaEdP0g243Dqx+JRax0oQekWQ4oT5xJ9YP8XjvkNavzZCYW2UVc2hT3RAX1z0z1wy8YHEcBROasxshWtixLbOBnhDnk3Ty+GZIq/XfOS3aa+H3rS3YawCS+BlksICYVt1B8XBhqwv661EBBIs2razt5fgR3Tp8L2kENntgsIAm49p8TTpr3WOws+tlzI8XsvHd9cnPcAEePdFWa7vdXrwGYIXkHDuR6NuPwx2kEJlA3CHXqGWX6wa2Qi66PXMw+d8XnUlf2bIvxKQ9HHV7iwQgewcu3qNnmJgMz3M0o6zyvW9ZJJQljCCICa7PxXT8vZAJt/W4DW3YT2E+/PDQs9M82N6x7JTkWmjaJkZ4sIHmumkP1Gm4mcCXInQ5jS3W3Uhg6cr8O3ERcQVekdvcnvX9JZ2OdXxQgsPrExfkm9ut72sWTzSJ/jl+sv3pPj1zMRxL8ODdLN8nJPZ1eJnmr9jCDgc5cBKJd7Nr6xFD+VT/CGEPcRxN03nXZbBr2hpPor3jv6KS5ZoqZ09uzKfp59uubzj3SLJo65Ovj73v0N8Osp3NR9uUTuagM4KlcFNjsIS3WDyxj3Z7++n31luqH/eg1rHgTY4vQkTiDw8mmHMrnMpSFBVBESzOv8CqyykTSYFiJ3me4hZ0UVz4EwIACYNygvFka9Br/ix61M6bW1zvyUqOnjo32k8fdrGGlzZujpX79xoulgw6UcT8EwowG38ootmr2Hj5YD36is1f3oglkKVr8nosVeXoPj68JUWnrI2x9ZO3W02w9vXbrE2x9orNVV6WgI1vPXKy7of/cG13wpTy14WSrL+vpLmnwjJfE3n9cl2TeBU9dDFFh1Johy5RmPXtf9SauOgaVvtqIavSAh8l6xIpClUUJ3vY2YLNImGSyX9ok+6qzDsq0e+IWCOOiPf/PLj/mwuob4/rOjevjFVl3fSNZJGuuj1TcxtfHnn9c16e5SUAQOU6JZxF85xZcEgN3/erHLzXRamFvfPaFZWtKGPQFR84+8hiD6og91TiarMp/ogHFoYln2Zx3AJt++C+7nGP2SlMHudAWQC60BZALTQGk+PRcKKnb7uBeEDe5VjHLuO3M01kRNmBFbIluV4/pW2DzurX2jRvSwAZIq0+MS3PEyiMsVvigLrrF0kHNXRAWMamY7OFq/cY8N7Gh/nvDbsVLFewM9Z6G54EIk/4I7ljvUcqJdiNEBINH/N0jsaJkd1CeLqgkaAepLYfpC9ODw0QqHXIU/eHRYO7wTOFcCYtIRifSiDEJK03bTbcKJ86mYqz69p1lUFJbbBSUE5YjvqVOZpd8utPYkdeOj7VmBeei40Z7C0ejGMZ3Ucmop3ZbtXxGyqMkLJzJJOekIRl5cnJS0b/I0M9WiiTwaxJ35A4arF6m3V0+HKkQxlXpdXR0SJ/1TJ/azUn+LU8mhlWABFoVYt8hib4eeWo3VGFoiUpBA3lT8XAhYKrTIVGq6Q4RUmwP9cTXEmc0EoOsjd7f6FgRMjbmABYkOx2U47ISSbZIuvhMnRyauRhstrKDzFuXwYEd7s3p6R0ad8A1tOORNRk3dsi0JSE3zTFhdLSTStwJ3R5dU2FbdM5fo+nsaDC43SIvwpc6YuKAIEmOfv0+o37MZ6tXGhdFtxeKD/jRiDe8YLArAztHLBDE3xuMI9VuQRRnq/+A5Y+Fy0sbAC39JiCjNJWIUCSkFeMgVKC7Jw4aDoJvELQLqBZeWmhidMj+ugKG1pwg2PN8KLvhX0HcKo5citBGv36Y8bKy904L/h85cuqpnrRAV66685j+3ZFbT1/HtvlYO7P76DF2zh9n9ewWdu1g+fNzR9m+V8tfFLmpGjkuzzbiw8S8B2vOMvBZBlNnGUyfRavNWfTD5ixqKs+iRspZ2guPu6qc46MA/cU4+CcDIRaItMzfsFPgOh4eQGCwprrz8YSi4FRhZ8J64UDTw7Xd/mr2ONWkggwRtCa45t/QyItw9ykRGn5N4B4kNVq8RxSBGe9R8gUKRLR4D30O5NC0eI/CcTaF94DJsOU5U+pFVHv6NzICkXrxFoXaW8yDt2ReoeQxTiplctKAD/vYFpczz9kgtEWJV8t16KRDiFcrV9DZQrxaCZDpBMkpJUgUsDaIQR7SS7lyGBedDf6DqE4L9RA8+49RBCoQxVR+BAYlXnpIH5RKMZ91Q7QA8+3aBMrplrFhocmcKBqfKRMF5OnuBikS1cQ5RfKOTJGo1G3jFMkpU/r9+UiMQ64YOS0zxN8+Xm1ShXxolwB/errS1QbrEdM109lVKe1StPkkLRnzFEEvne71zFP+hL5gINU2jbCpeYqQNIMLvzI4DfUewqIkMAczjf54pjEDlHHf88xRTePOvOc+Jij9Hoit/iifEhOU0siqDpueOmY9dcxOvYiz0y+iVpsXUT9sXkQ1lS+iGikvYtufuND4elNhqac/OrBH4fKGPIWPn29D4Afpa+UiIEocTGYS3xEHEnX4RZFPQP2NDwcZZGMNLaCmR9RscPpBV1s26NM1uJaw9ESgRs1gyl2Qv9AMJh0zHokO7sjuGbuf7C58lBnpts4pGe+UkG9QPW7IsqXPousyOGMu+rWRaiz0q23yeIhHReTpst5z8AGApsqEZswvxrDaBHTBcaslaRxqyrW0YalJqBD4nCzud1nUtmW9/C5UUE5PiRCqUcnu1du/U9aoXslD9S8dOTJa3SnYJZ+wGyiqr8eHfMGS5dMjkZnuWAjJB1ULoPNmaJKews0CKautwaH6HoEVuQs6VPKAxlsLgqq5zWDVeGIWEBRCuSi/cX26v5f1dr2oQKupN1geXL/KdsCiz/EF6y4TURFEO87NcB7dwGxJPocsPv0VKTBY6vjKvL7057ybDZwnkMLoUjg5yL3HXM1YGRUFeMZTV0Ax6eoeySQq09q2opOdpyPPe9lO2Aomc4K9+wmY3Ff1gYEIZmp+Iwcpn+TcBDDsge6VIm4KMFowrxMZSgE88OaqHHLqTQKpulalIfePKXxKaR+okOXkkyv7lVF/3iDFSA7IvrpLXyBxyzL0e8mbKSQ0X9+5+nNmU1C9wrusYn9Z751I0+qvKiFAClO0EmJ3FO3soPA6WhB+T0OJIStvjXjfnEbn8uZGqUycnJ+FE3J8de8z/NXms/qEcDHsptSE5JwgV8gy6z2vjkE2pPitwjiKdccqrBH/S5gpqkB9WikrNadYVN1VjFgF00HZOaYpGoTPop+pv58BrK6/Z0cJ/48rQXNth1LPySj6lEPs2xq9uKfpuqPuuuDPEXQHQEvBSXBz4mSVFdFSyF5pa8t1gXOkUX1hehUn1S+yRTlPIV8KraZRAM0a2IOGpNMEm8T6gCyc+e9CKJPb0M3hKmQjq0HdIAt/JyOqBgNF1aQD45cA40fVhwFZmRJUVoW+VQ+N+rO3gw1DyWAoBnwI8+mEuj/Fmn/urXDxY16Llb8lzR9Amr88KDsr0f63O6HvF4l/2blDAkHtTvQBpBLgncPO9jlvn2M7fRndujy81hMwxuy1Zq4YqvzxWlPtYuxeK007liotebLVt+banl072h7Q+6/TFr8iosW+Vvl9ls7TEmNrtLJJS/D0j1ZmtATVCloAiP0MVr5BW8yPtLKspa1eulBL0PsPVs7R0hYvLWpps5cGWlKRhM5++fGVOXQFmotTT4Z3Hru2Jw1W3zlEeIYrF+sARAOGK7u1tN1L27V0vpe2aOk8L81paZuPbBucIasyWrnsuFpVLUZcsoSHBisX6dfP9a93aek5XtqmpV1eWtLSTi+NtGSMc6dV0RXeqaf3zbR67pozDlYu1RG749g7ddg38asL5PEHH86JwM0FkLNfnaIiRF/lvXZTg/xz4MlIICib0rUKyXjVZdNp/0VMvukYa3UCbFwvS6U3SN6gkucRVmHrTyuh+gNAteXmG5Fg/BQmqouAbTUIhwXeS//+BfaXAcqBqtKLFTAsY7iE3DK1SXUbZ1XBnrtLMZmRYIVW4yobY1SD6Euzd/Dj/phU+yj93jt4hdlMyABqRpajvXdwU917cYJpX2nhPFe5XljrK152h1k9fNnOMXVGVBKOX7U/LFxfgKIO0EwTKpfr6HgE9Z8qkeZzG2YK1H/ut6jJ4i4vuWOOXdSPfkK+Qp+a6rCuIXwnNuFcqhLhWXPks8DwelVKtBrcCMWzppIsgQj1XR9lKuwXEiNv7up3RBtXZU9lPFGCagOmqWxqzhL3np6/zjjRgh9HrkXz0ttG/ZmpyiNN1YMDmt+d/h51ZZ0no82jvrScXeE0XKWeE1eyLA+rX0A/PYWPJbjMALletZguOLpagAZlA4kk4KLfKt6CXfwgzDcV8/00RV4upcGuu0xTQ7NDn2m1rbFrH36HBawH1y/PuM5TrZmV0AYq0RfKH/TllKW0r3ocQxu3qPpz6iDUrEgJLo3KJWNVLPOBbrQcF3d1BpjY4MUHQk4iISOuXQV+K1/lE4awXrSv+nimkzRlumC1lhXkJkb+qa74CpQLcEGJZJFx1xdNyfu4tZ43VU8dZWhxC1lSsZzuutI/0YPooMvjomItpPFljJGl03XiO1gixfBKF3OJj95Pa9jv9ZWy8V3BM9qVNwQb3DckFBx8XySgLtiUekwDKrLJ69T9/7iKcJPiNQeFP+5R3jP+2LA/sv1zQZEuo7yAyGDij2DTGVUfQw893qQji+FM1Kf1nTaKST/Jn3MY1lhHrUFua/6eOBvAK3tccbAkIw+CVtJ9gIJb8VPtURKVYNvHcF1NX7u+8U5rakjG5JHF7O2YuelNPDDaUa9TxFS7tjdEsifbxXvaxRPt4oPbQSU9FJQA5qR9QHl818Fsx1rmjj8+rlTkT98d5ThYf3te8OG83ifG0UOuTvN7QMMPu47oWayUG9HPu6LLxEngccRlDjDB1IVMCzvkYEVShrTPGkeevMD8oKOoUDwTAX/D+TzjxfhVGeDJY2Xl0n0rb/2Yy4PlNVzTB/IcO/cqK2Fv9nFLjDlCIHaqfZVJn3i1DYp5hyIsZaBFeTQeqpxKVeRVH7KedrU8SrFtjPyQz9Crhp9izohEQzlhCoLeaMSygQnWcMXcYKNMsPV6eLOgCUsSdu87m+toBQXcVTA0LS9SEG4Nb2ICM4Kq6ZdzdoFwqZYHFMuirauwSKR8mJK165BoxxyxvUHJVMTY65HKHpGf16KjwOLAuZ6sKpOc5OU1cRwiAbtzeVP1BvuRr0jRdX0M3U+WXhlOVN6mHw+/9JV7FLFAH2Oheq99PHPZpxbCaD80DUG+ZiPeFYiupdTNrR8L2JPKCjQ97dRcFZJLxAbUrXB7/JWCQ41h8VfDJOfbXFQVxOpvNrUfRfdAlRvS+UIMCXZ/lZ9pt/IEFEN7FpP7NlYgZM+C6SKUeyE+vkBohH90s+TYoT4Lt56reJkag0exU0NLSy7DJM+ogifFt3SF1Qf9vQvBa5gcgJ0RFBBergkKaDmDAtplSrn7MFVn6/skl6EJBTdcV+QiCrqOLydyUMp4q19FYUkvjQOqOIeMJApQG6K/KEKNemC70MkKN9Y7Jko9x6nVWsLo+s6lqyKQ5xyXgROhyyBdpF/rseiXTZ9oMfpE9Gm6NxF9mOrMVC+6VdqqA5VXymIOhWCm28zz/eIgBKVPUchdajfJIGZOyN/bljlU1X/ZMWPOipaKhX0j5TO0/orLB7E9TdvlUkRsKNXopjjLXJQznjF3bgi/iMrICi+euYlVSRKtnJVg7hJkJm5KvIQukEShJYgEqb6h+jLSN5JUzZM6mUUOLr8PJlJdcDWp9yuYKl87yktdvLlUn45F66rr7wJvqSo61bwKN4lFeAGBGC/Yy7Z2jK8/9WOau6DSq5SvGeUunuUKefYR9//YSDo/UUWmJ1BQ4AbJmthP/qjih5TliuQvKn0JfRnpZ/yOYYCS1gK3bVmvPfF8jBhc3krIbVhfwFPcEsvSYZaispeltiXHzZjjydYGyC0lroR4S7MsfkVlUGSLUaAPQDh686q3DQ61FJlXU2Yw7qPQP6zf5mcxrD/IUwBg2Pe3U2ucVcSBy4utzowtBdELLo/peJ5a2O93iilOlQy097g/aVSGwR0I+EczUL+lsvKS+LHi4nS90gcR52MjxI9xJOCQNfpV68ZXWRL76MdhFEhg3xAAhHBE2NtBnCoNbjRqWRPYFUBrxjPVR0XBXS6mGmOT87uMb+VuPoUqxuHyPqVQA7RXQGvki+Stq357cCGv42NpZB3pvIU2U8BEg9q2kaJeNdXTMuizpLqnJ1WWLm+WKGxuDJTCOcwfATulVB/zrEPU6G0I+RMuQEt+bfK7mEvkaYU8vHlyFEjHn1FghvKzeK/AxVOLVtb1iKOyLTBhw6Q/4eMaE7qdIJuRBHiGmDN6LU6lxR17I+RZnxI100MPK8ZnfglMmtdyvLP1roMT72MUFpcwrxM/blntMpG75piL5nauv/Cpi8YmNDixueTrIuj5D+mS0tF61x8fKgUWml6NDjCFFLLUwom6QiuxdHlWLw1la4X5oxNjadl8b6kd+BU8AU6PY2i9kSiBJolHxNvjSQTPW9qZxfMmxQYa3K86aFNP2v362nh9BWjLOlo3LZ/ZxZHKypBuhdkpIduuhPlof4gdavnxOLnLJXxqdpC7S8eYbEq80Mh1KhkmwZp7uZ18Fvod1zo6lHKjcTrmk49a4U0FAnmx2MDbXVJg6cxQs9DJ39ffM4o7AH1jOJ+Pxn5eJDkVdCt96FCOjkoMLNVSbBN33LkMus2ocdVuBoYdK4hnUuGZW28i1vUi8FEdrvG52weruh4qKp3esWq0Boz8Mb/nhbbDDzVdcsciwKK74C3j5bImIUIiPIvL6XFNdBks1/KMSY3Ma8GdNcXF8hw3Qs6owwdo/YhyIvkfFCLXhYXJIJsxuFPi4eXRW4cq5OqNI33mmkKdfUY5gGBbu07sL5zcJEMGsYdzPnVe+9pT58VxxXjZ5TviusWVyd2hrowDax/Aj6M6at/eoRsGO9UQfpbNDksHh6QgiUYAbXYwIOyV4iTOw5wMbvWruTZc73JhLo5wYYE23qDgU3xo5SWbiZEjZbWLUdK3xiRN7YWQNNBAdFWN4cS98XsxmmOqE1JS8SpyAmRNHOsykpSUDvAym3NBVc2T1hMM/i6etKhzmIQg09g/mde8C5x4Mi8Lf5WaC3OJAJrQZQBZ0w9JQlrZhd0Lq4owkOolFpOJTb1kQabj/HxwMTphr3EThE8moeLc2hG9wltQV0DDkcPkSlZ3akzCQmYKGwU3JjNqViPJeXlv4DyyQyKbertaUzijtObfk+DnDDRnFFFwjuDqaJjd5j67Of1ATKGuW8IU9QWY8wVKbJ2TR54n4Nzq6szoMIRcpmPRDd2pywSe2q8eDpuZM+oRN61nxVyIX7oQN6i09HCSCGxu/HvDIsj4QPOR1gw6xCCypVbdhBkUaPk0h2Qtu5z72xq+EVk5TXwO1n7Dtzrb4hNi2FXDA6GI3j2Wxgvoz71hv3hFNRp/L3BamjcidXW53kCMPQZNfRI7uZHdkykfatVxKsHyQhA/Vm32yyrtdEZsv+gWyqRrNilSYQ6U6e49IlpnahW0+KAWtZV+yU6TA5qnD/bXMOpc5BNEJMrnFrIIBUO1VsgiZFNojSqT5izy4H3RS1EBqKv1ZqQrw6r+qNFhDghFaZHutz+8fzMsIg+nmpi6v3QBD/TbqGnFwO6IPjFXCImnGSTwTLaXCphmJD1RUCer9985mTtm2IRTZemlhgljxXfpXGe8f061Fi5vhhB4UfkDMadkQFqsicoddH/ommdyQAsrSyg5X9EWbbCbsD0q6Wp9B4LTe6d3OyBMFmph5SKO3jW9m+LpuZXLObCa3uMCa1XvqN15XRk4gu5u12QrKq3ubqPdS6d3E6oWXdyEIyfTuwi9U2Xl4W7Drz4F245q54qnaUoeMzG+Ee4aCjqbPZiGIrnEknul6yBTAQvpsYCc+OPZKK785TCqtlXSsIZ3oGEdUJx7SJx7oJjpdJ24vELqxEFC3yfWLU8r6+rEBbRJwoBnOv7nv8TxnmigJrPyLi1F8qUc/+kn43iFkTD2Niqbnxi6xxKt6B3MpoMK4OmbfuQrb9oTZTQdXwOq7/MkyQBwqUIrcbpBnO4NX+7p4CJQY81ZudMUdYy/mOl4wRftLAu8IRtf9JKEtPb/mNAHulSCHwq/KRctaOTqZI7A+5zw2PqNiskihs1U0SPYSKbAbJTesj5CZmOZkGDyqmVGQq62Dpi9WfQKGA/qiYrWCMvJ6g4DVHZZpAC2LYtSjjsEtaUyXDrskMw0olwWkateg1/litIQlZup3iVkH8GGncCKbViNsfI0ZOBKhRTdDU96YWgL9AeAZFY3pjKuUwaJ+NrMF+KwpaurBMgOoIA2HlL7BoetCVjOZsBSt03xSq35E6l2lOPUKrFKbKgwrbGhAIYZkslWbgf0goyDqJD1duKB/indAqIOI897UR2pzBwd9wpSONltY86qIJNrlcVEh0dLUlfpHKWKA8eUWAGneXYkk9oOJxXsm+qWEhnVfYl4soMm4kljff0Djula7wchXEg1CeDHQN49mfsxcVkCUDLr5GD8loyHxtwS1JOAE21y685GK1h5mCyMeIMce3ZWjAC7KKoJlJGNmxjfAJw0dbSgs+RVRI0prifkbnZqLutVZtuMC5IBiG21Q3VUlN3M1kvyrMObxc+ZD4eW3IIvN11ageasvOHntfemqGpi8GudP+HPaGz5hZDx7XVZC+azU61VKSgLA7+n8ed2ZFpoHUtLp4KK2TyMc3oAD9h1cwwrrMaIYdl+VO9jmzka9VOzwSr7ShHNTatCIuGOMeK22g9zAkzDVf9ruAYj6776XJvnYvTr61WKQlgghzFlaES9axhEY3o3sr5Xgf1/ahhX5PZw+Zf1slFSN7vPvp6t0foyIyHFnxcEl/UIU5XMVUyDKINV79Zo1k3FCcBCh8Yxniy13oSnfw6KPm0mCoiesSe9cB5s8FrdINlalhfMuYmROr9KBataEU+xKoqqt1nvFd+LjltGhpfKqJ5yHo3HDc8DzAz8T3Un/LP2WJ9d34KjEvdFiUzNZ8rbAmgiP6l3s20kRCDWdnaezJs76zINkulP0z8H8t0/uxXCCtG8UhmO2QA18lTRH//cUFIqfUFraH0BF0t1HpOF/Yp92nWplrfuh4Ed/J4+vdhwmiY9OQPygQENL9mgOVkNnr4hQmbS5hWc2yfr7vhK/+iNrpEBTgXqmFlr/LKdmpFlRFMMMCflGF51GR+b/dIp6Ey+iACkRpLKT0gcWUdIFuk4Tqfr2cZ8PlhSCkdtfKeVgERaekDfh7mJC+kgmE0ya8L7S/pHtw83Z36i2K2mwW2Tc/S6zW6ag/TIyM5dLGVTHjQu9iwtyU+iJZBeTUvysAVtdmOzmyLJNDA8zn00ck/VfNqnsaIGOUUkDnVIhkDIM4UG9/hNg5gVzyiuFTwMcBgCOFaU33XNCvVozfSNsS2U77zNIor4JpEbcACIShWC/fz+B1Nyk2k4qR/FOlxdHNqKclsQeOPASDgoyRB5AU6kb5F34v39/gA2kWJXDtGh50htTmnGqV2cLdMCSBfpVxiZ5qGkY3Ren+UD1dFkd5zN+L6GEBsznlJyDxq6kaORHygz5vVDIZuNhn8gyOMy4BJoeH/XUo0xvnE4ywoJ4WcGE8lvoKQbpLy9a/qwmwXytk0YbGsSBkJtf5P5Nob1N3KNjqIvj+Lob4gEj5lVvWUyuKYPgkLHjK7pK6xySW+O2f2S3ha/UL3tpCEv6w2haqn/2KnW3bw0gMv0ZK/ufXM0AiXt7NW9byFFcmXvxUHYcl0QtlwZbDB7r+mDSMBPv7r3glCbN/uJpTa/qyFR64vlz8HJwvJng0wPD7SqdMRg+eNX4vaz6LejkfoCKCKPyrUJN83Jb9PNXHD9gJwXB1inLjoFvfGDciACy9fbIQiXqiXWlJJ81apIiNVzmuprfBrSuzrN/Nf4NGD5SER9jU+DOSgo5qD6Y9tUNqJMbDP+nUF86Y9A2V3SmYyMoJKF4rMwqTqz6TkiMpW8zsEUy2wEuClSiEwx7PEPg/yV0ePsovOdI7EEXJy0reGsOrMYHLb1ovdZ5bo5DiFijtvmfVSEMC/FcaJLtQp9HAfda3sc9K4c983eF5pl5Tj4bjnfYz3vhBrLk52nqjkfQoSTH1ubsqn6k06rJqT/nCNxODE41CsCQT1/oNfarjd7gIja4mUFlKgFAlgBKIq3w0pAS4GpGuAIRNMr4CitvscKUMoYlFoBTYkZ4xUAleBKvQKmMuScz9/3Lf3eisZGbAf8CUwTqKx7DFAURL97DH7Ue+gxsFKv0OMYoVqhx4BQWQlgKpBc9xigplfoMThRr9Bj4KNeocegSr1CjwGbeoUeMz7739Kfze5qI929IH7Sc3f9RXj+YBTgUW+mr2BKvUJfgZp6hb6CQGVFiNHxm4d9S3jJnn0WxIrgbupP/IGgztuLxx1Gl80Hdr6fnSK4mNppOsR+/fvsq6onIq6Xjj8+/R+zA8dRwCOxa4ldsfqRZB3UD+o/ZTdfiONaqH6k+mCRPdhR/ya7sFy6p3PEol//hdrZ8HSPs4Nq0o1Pd4Q2+WTH6ZLxkD33lI50jqGUcan+xQ2O2eU9v7LBMVAQLtX3TR/DZQU4Z0f9VnookYbuZeGMYLiCs5jxJ+V5Qvzqn+dq8jvGwnNWqljYpcnRCzsVQ/PChZo/vXCBBpIidseWfVfMMH9BPbr5fvb5XWBhu2KFXjhf4TkvnLeyKxa2KRDohXNXLlUrqhjzq/c8DXv9s7V0RW9ILGwpXdlcurKpdGWpdEXJK79LQlyWroxLVxZLVxZKV/T6xMJc6cqsu6JEoF+W52nO0D+j0hWB0GOBqkQv9EtX9P7oQJGvgTcdCRt/tAk1fq+w8Elt870HFH1609mnnvqktn/fgfEjgxK+j8iRk+rHqMaCgDaSXSbUSuQB1pTBFcU8MFJMsIsSxM5Aupw+oSlWei83YGMoepn6sHzBAN0taln+tZT3RdyuL5UCMCRqUGRvPPUj/ZfaYmfunr1ZkBqBl5c4jdavW13edP/x5c33yj01bRrVTHp0UyKUmOXCQVBFbL79wUs1BgmxyoOevfnFo9uBQJAcUpsElzbtV9h68zFRxoxXDtM1cob2ZWdeuvP+O1cO/9TRe8E/yftSNG1VX5HBIcns3dSmjYisOBxiz/jfEVwfcGeV7lRdZyLm5CmOQqdmJlUeEDTpCaFlH9pUcfVDIgatv6Aw6WRB5V+1DEV5WFN+oYvrVZxMyEg28dTW+i+QRVizAzwQhcBKigVwbqE521l+Drhq3QlU/2UmjKs1j8+AdXzUoVuu0JyQ20MMC+cHb2D2koFYVuQdXYJiA38qVF/gFJiQzdSSvGYA0NbNVhnrZJHxCq4ZQVsAuKTDBtUVpv2UYRuX4nVqIiNByUWE7Nfl9efiWrWceUdKpuyHW4IUukhqXR3v+NSov2B3DPxCYnanfIuljm8hHz0wBLD6yF6A7/my3l5X0QqjKsuIF6TlFsWmNvVT/a3tJgwofv68DgXkJb1LyFWsRSAoxAUjW9j68jzXMrIZAkAlelIHE7FJthxzpYkLOLjSFBfrUPFlO2BLulqbG/6amoRQyNxod56XEmViGq1qJVKTqmdAsM9pItxCJXFgwIIAHnlJM4RCoxiCM3BRCP0IkYa+1YrovoiPmQYH7EoOvaW0Ef75jJJa9Ci5osrLTewjGkV63TQHDdUjQKSSP1MMWWslfyZP1TCKkkFzmvzG4MG2jCel2eAtMI5FZ8H6nsBfhOvEUgOUKNl3e06jtZ6TCrb0hbtrOFiIGVaxUSGIKTSxiBAT1jHDnwgcGG1P+UnU4fXq47EsRoo/ZXSiEqNJjvpBh2wSHE4Uyv6ei30jDk+E3DpBv4btbntqh6i0/p6wJyUz7fQNBrk7fRsR7Lgyr0aAnzwbq7Gf75PqDr0GWRsUZphfTn8ltuEoqmG2co5DpR04AFRmv6sD8aI1abpMgkAgZX4vOqAY6QIBrz6XGD9F1Uj79XAdX8bWWaz+yDO4R4etHjdtOpklMWjpWUGj6tw0MWo4lq1FUxRKwEBDLDsULCdznV+TOntp5LVl9iEUnAW/rt0GEi3+tHaLksCq+FVe0nq+il+2WpCMD7nlHb1dDTFr9ip78wFAQRToWMONehtO/ErtVyESj0Vr/Fz8L/qOqnCxQvTPvBI60HEQatYtmMjrSiYG0pTgBCYYiWaXLwmRgDmKbEzfVf3sBhS/ZAhuIWCElptTHK+yYH6pXM+rd3Zy/NZBEQfQy1DMDXGwaoIC9GTjoiXdDfOjw8vr0doS95LtAPMV3LzIylHXO7vCPHSdstDK9PaP6wukP7cpgrhwr9PWgXQTEz7/COkG9d7tlmlK4bLZm21FyMoQhpy4YebF9AJif4zuPx5yPowqgxrLXuVOwpwg6u4euPiSI46JLu3oZPFWunT0Rp+msVLgn1DndBQ44PH37dwfBfdiqaNsdfzP7hdKmfjLz4aV24aVWHkuDmDjjO6wF2VnVJ9zO33pjO6wI5XO6A47Uo0/iiNV/NF0RvVt90lsEYeX2Tij4VnaGS2epZ3R4lk2DignsQNaPMvigKb3WW+Jk9hirjfHSdL7nPdJ7IDKl/FJGgeUkzQOKCdpHFBOUhzQ9D5lXLeu51fT3XzHQDlXq6mR7GEiK2phogrTbEyeM6v1Z787eQQymhiz0xSDgPSTQjIMK5EhIdCTJcMUpgjaQiF4XLfPTCBrWNVeEgqjNsySYbI8oiJqNs8p3UB/OCYLKRkm1Z0pybAkAQjcOycxir453jXpLrfoSoZ1D0rJMMoUOE5/EN4l+RMVPZJfi8teoxnWueze+PSgL1s8C4QH+UgAeagqN8eOuh6jHVqVUhpKhW6Un/LEovyUxxXlpzyrfKQKEjt8wYOPqlUGQ1StMkCiapVBE1WrjKWoWmWIRVGwhSd8SkZnFAUzaKMomLEcRcE5vilh5pS8CDM+pctJfEpem5kmtDPjU/KSzfiUURtc6pCF/Mt3dtTUIY+aOmR5hVmHnIWyl5dyWrVF0a7XZ+XjpZ6QGBciCyHBmUBojQiIVVIrUZKAb4u3JU5LAwz+fP/EJJuG8gg5VL3fJbfykSAv8P4G76XPqeo04gyBQXUlRH0cGZvq2xpijUAMwVlhw43dQ4ffNS23hRvU1ASQvt3aAbRka2qHnC6YWQNbadSVqG5Q9um6BimSaLa2oxGzQfbqf7Q4qq9Ui85WsOZ0RSTYlRUxT/inSVfYx5MZazq4+nTRekT9kRV97QVCYAmQSa9+IrepsgVtSENDDGaU5RI2mJx/PcJ7neOuniLR5FhJG8uqH4uT6Aws1YexHWktcrYqqHR2sFICpz7y9ujP59ONGHkpMI2kd/rXL0tTXm+tYAB3Kcx8izxwBc5kVgyVavj1oTshGVItUgugAE/8yATmshqc8GU7aXn9VflmdCr7GILJwheMqt8UUh8QbqKCnVTwMfUX3kVcqZpx/pjfblSQ5SvU/aifRNOT++YtboxcsSYXEo3stQ0t1uQGXh+KrYIWx7+AOyrXyBvYi9UQiMZyNPjYam680ZX0xn+mGYv3qSHfydI7vUFpmbjmm2KgzpYovmv5wKESU3WEyu86TDMumjZ3hAais1Ga6QVhbEQmFVS/Oc1a15P73B1kYpy6g16MM3fQjeqEKgCablnBQJ5Ks8ESBorgN90EmpcdhlzC20lCG0/ikhBfmfyqtizEW2SttqUh3qKcQVMeoqs/2b9SPO9JQDP+L5ksDTSCkW99uTyaQ12opoI1BY7wg4X1liuxKZwTfyxhonUCDwY7pgojgZgy5GiYPFcQ+cm8jtWq1EUbiUxg4/qGMZbN3Rf0Ka4O1HsYD2DHoXrHT2KdvyRS49dLkFa7qE0T4FI1dSIMonZahxgyLilC4FSkRfoHcVmzuiyQALDR4VBIthAgAPY1Nnejg5sdxcIsNSE4wcHWMtkkyFaUCDepf+1Z5U162yCC3w/MleBGUeQLxo5RfVS+hBTNKOXZV1Fy45yyHqG2CFDSeB+8Ivqlcpverq2In5lLRI9ZNFsxMkQi7C36SDRb4BTRY263+DErsCpeEbWWCgziE6n+Cm/0ISdnBtXz2cgXwkxfpbGzUnDQO9TZcsZbYPrqNA/T1xM4v/qIuPknZrP5vAFuXtpLVE/ozov8iznt8/g3IirRBcwx/N6Q7iFvdTA+uyb3nYRDpPwb4RDNA020xGAm0VcqBkSqfqCQ4E6BVOrXEBXZ+IhSyq5f3fe07WpSlfskj0iB9ia6s+EvR1ZyH0DD/If3Pc2PIv7IZ98xtvi8+8UdicUREQpbXjaUbHfZfrHVpZziMbkq9fsJGK1rO9QPkGNgsBmzL236jNtJVlPgVnxFfTm0RFWGUpM/hLTqhOKHWYc15R5ejj+EeHa9J4QtnH/XbcVe+CHdWwMpwn3WUxKiwk/pPRnC8weZSMqkKfHa0SxVGxSAtUVhbaFYp3rsGerD/Mdg70P17p9kYMkuOGj29qhfXyAWbf58wxySEaCt/zIXQtaGOTTYqQXLwnwmN9VsZg4SuIUrgZi4s95Vd+W+rAa6KBw4nO7qrwds9qvtMrJS8D8+NSgmSgnw45POE76+X1wxt6LGQph8/vuNzMJfXYGaMzRZkwNTz/zGEL5t2C6xEYTYISaI0K3uBuVgduF7EJ/Je2EP5HBGZI4kjB7yrJQoFc0VINtKAbgKXx23OSFLIpkgjOgQy+MM/JlypwITRiLaHGBmOtehPlU40+mMq7uO3cN+RGcwXzXhWt9V1lGAW22s+qbyexebKSqbxIwW7Y2a4Pfkd+lIU5ymjyiFkDo40Ief8cytLorJyVHis+TfdY5P4wM6bOGDtOVMv3p7hBBTyhap/371aXdpVxbYmOnDNcxpoOqmugGSF3E8kKaiddscL4p6H6/KqIDKHelnA4rV/CKFRXQpurEsuV4N5owmOo+Qz2oUQsRwvyGAHJemUC7Sr2C8etWTzCJim8cxAeInYNFu1wPEJUd1tTscR4w4QgO5aPl/Kj9V6/O064DoziC++6/1OVIp79o8rHe+nZ1rs6aGkHv3b7GbguDObjhEjGw1h8/VcsQ8MxM8bBKrzqjWx3R09a+q/xocidHiG2hxTVb4K2nRSEm3eIaA3ravsEXFBKLNBnSuOuD658tpmkzrXzYTQZbfAfjUKJkPkKvCyEEPHcvJ7RKfuEB3GlWauamjfwscm9wU/DHmYu2kjihOUEcjUeN6KoO6OfoOHQhhTPeAUBHQ2WFtcCTbTH0knSgRbJJO+R5E0kkxlcScZ9JJf+cRoCbpZBMrk07BJkPSCaCV44WqjyBJyltEjSEVnH4js8ciUHKZW8kttTVtgl/aVbcrwJudiaW3KIud6GdA5hdn9Wxv5bXv7v2gce+9ezVLfaQnNnVj1Uf1gh1RkaftZwJaOfHu3hFRvZ158+Hbb71XtxyzVJiVf6lwb/9QfZfu2j5h1a5xgc1gv2y/1x++CRJh/27NLxSiKezRZq6UYaXTd9oUL+EzHQ03orkV68Xv8svPxOcuE8Ce/nmyKnZ/cPk+zTmBWgjK2HK1tcTJ9lcvTw2V8fsG/UUHflauuwueCcwOFwdR9KhY0AzbR0dv/alJ/7aIo1LVBFDp6K2TPltVcfPtd+kLpn/5gSDiLg5qf3CrSopin6BARII0wNp9S+zTOOVkJMybHT6zPl5wxbWiMOKSW6M5w8dX+KummIkfKdVOnxqys1ST4acLCgBP/XS4wU8dCp2Mj06WvuRPHdN0qj/3a1iPf28QRT5kOUK4jLxDRxZJcQdvaMLos1gc3bi7laq6gXfLWXUj78KbeOlG85jngT8IB4SXXiUejsM6yhRI3RMFK1GnXRU/GQfbtGtqAZWAqdeUleENJRM8PuXQzdq7DEmgUsPn4rRoJnh3D8jfGFf/poT7pVHvdLetg+r1UdGe4XcLcpGfH3+2H68xcN0Op5NZ/BMXhv2FtHjSnYcieOR58dkN5U3RdW6NvrtswLRLOg7gccqksBX3BCeL6wmNTbYCnnPyNIq85jgdyaJRnAk0HemYsBBT6NyouqZmDBIoDornqhUdaGxbsSJ9xmTGV5rSyNuvwrWXq20u///GtWewIa7y6W5E99rpx5pr/+UM6HQtZI0q28eRJJasHiR+toTnn84S1idxnSUM+5R3fAlDmI/9szGERdDcMYRP9cIQFp992MGSDZgygxWILmawbA+ZBM9sBasXuqhS1jNlBb8uHa/CvugYm223JM2tK+NXdCj1GZT/3DN0RYV/qFBJxGr9Dd9XXy66RHVqi3Js9eINsiD4aISQDnd7y8uwcpSHi7Syw1j++Cty8RGjAOqfCksCVEPwTr+8qU/Z4GxXPuuTPdOZkqr65fQpaAR/LWPrZxq4OjnMDqREqdWwPQw4V9SScS4dLpAZD/eTYk0UFuh5a5p9wcCmsvgS9LXJrOdx6GLKCow/8x0Fekl9YxMqPstxyPxhXUTYnZSqXimFMn8iYOLJbG6UeFb4Waj6rAJxSVxOdW/DXe7a5EJfXjQITY5nELmYy2FKS+UOU3BIuYPShLVICEt2vG4w6EfyF/UUx1hMRm7oPvnkQm9robJktyUD38j280f1LDHdJ6SflDWQfl4d8tYQYJvjx9F0nqC/NyFBytTgzwRur4v6WV6IVolR+iDLnvn3zu3nT/Wry238KQF+SajVr1OjfW/wVxSWjOTL0Ku3UKRoI1wNj25h3b4/vaEy+8D1SX4keSCnpWoFUWkuqQDwPOGtk6qFaEVF7/kYSBNhhVkpyxHZrcn+6xUzkmxvw7VEX9A79Molrcit15/Xitx6/VuTd66s4+5e1tsd5egp2ei7807ujhReU6v38wa/rL1BSQnEimxX3WG+zPG+MimN75lyHss8RPj3qR7VRJ71XE814hZyG/4wQCXEqyKQbmiJKS/UdbXdBOdI2OFUUQsn6ASzayQMjKUHE6Cvm+Lxm722dLMC4lrDFQM20OzeVHvq6x6xxWvn3KxY+0ZHNA22TZgFsNuE1E3ioFNuoh6MBf0o/p3yEq/txMYAuPRW7njNseMnTp4SHSr3k6SPAvcEyKZ3EChbs2V+3Za9xMi85GCalxxMC6IMU/x4Yqv+PZlAEih8SE5LRFEBCjwypsUIfj8ckdjuD2WWbbC1/tCXdbg/pcwljo6NP5IcrynWFFWfUaVVktrwqzCp1APXKpNcezTSPZs1zlwZqm9qAtV6mYQ7LL/3IcGzyA+IE2G1Vk5ApLuYRqT9LvROHFhFiTJ3ZD54byNZrG+Oc0ns1cqDCsxX38FL8r74OXSlJYvoMkR75Oq2zkiK3dSE5ulhApKDptbV83V98gTLd27zYNCTQeF+kYkn1dWsxDtE9W2AU+snIvlmSp05OJ+qT1J+aJ/cxoWbKG+MSYwx/5K+snAEWWrQSdoS1jYlbDwis0veDbhXs+nd4iIi0RZTI3NJ6k8XlJrInggMQANviJryUZDLEq6+skfdvL9thSNTyE3iFdqwIa+jNXwud/4z0MtBmRlV+9f0KTQ+p5F70Cz4T65UTj3Im9tZsIhsDca/EHGVpPGsx7IpViTpf//y7G2Uh0X5qvkHK9cW91+MLFzLLyyHcVExguy45xmbiEWDYwYRglAa8aZtrhcAbgX81+iI2ZXxnXafVp5//F6+D4osOhWsJgFxmJ4H0s1kzTUWVGXnLnRwsFhn8sNSzsNFx0PVDrcnmAxg9pi703VZcyvzXFgABNHduHXPbPLWOv+lb55BRjzLu9tPGxmIfn3HAOnoI4OG6idiP8EiNbPvUr0xv38YybmQ30utHCxpVyG9loJUunwDfbxBWHYRW0slOSihouuDKClVPXgW9A7c7Aullquhq8RZ8gp5jGTFcnuU73xsnD7S6kpuv7oLdKjLsQ23NDxDRgjugN1diWFcGKRQxKfTfv5k+lcn5V91qOyy5CqV4pqqq9QW61cXOzm8N5PD7HF2GFydKNSLBdCqWYVWWCkHtYcUpVoABZtSLR46dV4txwhkSvHjKN4CwYfbGDjY9B+z3XC5suY0HKrsWvBbyk3T5Ktnb8tYz56516+hZg5MA72PzIXXL/dI/NiHMJWXRzUUlQ9Ber1LuXmH0TRaJomSNwIVKozgDFBrJESToYrHYVCDhr9TMcySE70uhOKglbZVYIUST6mOUyvsyPsE/bde/hQXDRUdv7LV38lC91N91CnZ4hiNjRHULHEBH5GrhSmyViqSwt1j9WKJxrAf/uWp4lvn47ZsLLAKe9U42uV2lwLPLA42j2cAb9PHViTF9alx84v/LHSBzUMOLlSl0TwPMl1k60gUFxjH2WfHc7AP32EuzWcbjJ3rR0DjRYscCTBMXuWRLWWEn97EEP8YERg5LkF/DTosdjVM2eSsygA+RUC7pVl9wneyJVA8QYtt0sztWHkQm1mqrCY1bEBGYtC2BVhorvV3i7NmcRyXyzF0SWnKg3l6wg1mRjxpHuoZCLWdWGsItTtdHr8hp7jm2T4rB5BSgXDbbgiyQ9N/Nv6SJgQzfzYbLO/YEmIFNak9w2ZLvJNyHJstfiV5sF2s+0lzUgXhoBZN8ERkoOMZRg7J9rYzxS490EsdFcTF+SMm/+Ph9L0yfMBXbASCj7Fxz0DFMK7r1nTAtzQcOkzXsiSLM5b8J7mnrHLEWaeIp/SSuEgAwD8wshk+T6MO8RSTtUEZDctzKgC0AiHwL4XqkgmjKsuKe1XgdOil5tbSSxmNToB5bkN6KQK3Ko3kwDXMUjueiZTpZzJee0JE0l8TVPqP8rG4CtYGu50SMivybwFpMyIA0J5S7GJeNiDCO0Qir3VmIFEsWxitjBILn/kPxLo5RNYLmzFCUGBS/68NZLhKgIw4V9/WKpudMO3yF/rxNhWKqvhs6LQkIlzMfOlGtE0P/BEuI6wyYmT4UjxKl25A21T9cpLTDMMSI7HEJ2VNWtFu4rqzv745uyqYLird/DI60bA4CcNjDy7QhHnxUPvateFbiRVgGtb60V+1sa9XRCsf6K78VXflg92V092VD3VXPpwrfVY+0l15rPuzj3ZWwuy+Y7Z6x8Df89Ub6tGh6n+HCW62eCH+2H+BYIjvC0NcJlfWMwkx+knm1UdzFSXNpoVAHZu3EO4b/8iV7D46sH+0GA8i4JGEUv5AqXqllMgkOYTrPBI42JU/Ebaxuv1WRZiuQE6ofT2xLUgPRf7Ie3nzO7kW/QaoYFHZcYU+P6Bdc8Y1v1seaF9bdvk97THfIw6ezu+GK7+eJZjfv3q/MDZSIVKsLjpJH9szu8DCp+tuJai7fqv1V9ZtjW2SOWr6r9I7pjqFugyEjqlLoFNz3YP8+GJ+ybNGw2bTKzRtz6CjoxDOVWKVJI+qFRjk5fQkr7wWdx46ILNc8zW08rwH+jS+WU/qSoEsiWQorOrz8FGfr6hnCvBM4B+xuZfNeMnsnfacQciFuh5b7NABNiR/vdbNX2+W/yJz4ahmG7o0FWqJcPIJ6wY5+WI3oU2/hm9PW51ASioLp12NoYWskEkS0gIOmgRLrhVidma/ID/Ark4uAlg/g7rFZVgsQrOyoju0HZPoj6KUsFULfOH+Zt0B8DbERvrt8ly6rPfd5lCv5w4J7LE7LPyYSougLQ8x5FJazGQ9tMcjQjj5ScJSRMYAlH8Bk/CSR5BYAmiJoLXYozCorz5Y/+6nPvA///VNwU+mst2AjBToBxpwADILsCVEXoC2KG2cuRHv37A5Pi4mP4sIAoOdCgsQMd0fy1Aba1UguLIlUAIOEz7Sl/vBSch2GIwgNrv6wlerhfNefVD/zr36oNLV9rqFhaL2c16bxYp30JY1BFrLghgYwh8pDrMKy6vWMMfbEJJydXnxIJHh1YMU4rxa/5yrtkVuQdt8q/ENofhRCl6Ic1jvD64eJJupjsy6I7PuyPIwYpJ6empm4GYGNMO1TxYOrk4WdRg/EnqmX2qo9GjnPTylsgfimzeJcago3ExELB24dLuZo1MQS19rzypsg4EtuSRZUMW07x64Mng64M5XlWv81infjP+bPpUS3+A+LWSqUULJLmiXzJTKWuwiRMguOXjxYpT0reqw+aNSbf7MqibYoRdLqAYkfDz+SD/MpIz6rgnWBlFw4sII3IoUOAK31MB8mYHbwA4RYC2on6ePwK4N0X4FUd5xdUWB6Dyer+xJzTvES541uHENZHEdVlE3XKNnHVZRZqixisQzCkwRv7FBKYaABEHWFqcIKDHytiUCYHNVMtt2ktaAEr1ZjUyDEj8+Hmw+PFeIZwOmoNO3COTojotOxOgVuGlmwerN4AHMXdThrA/dEMfyxEKvL6uilkkVIEXNa1fvP36vkn/QTLbfmyMu9uO0ErpwLoA51/zAqq1VKOav+5JEQLadf7zKjJzfF4MorI4vY/cs4eETIVNBaXhqP+KEL0gPXRaytoDX9u0aVx9wpg432BLpzkJLLJV66fjJ5vhJ5LLNSCwtjhRTX/ARZMIlmFK+Nvq+3TNcPj/8O6WsnZVjZbgsDNUlUonQRqQivDJc3srfB9j4QG58YLisduEp1sYHc+ODw+Vz+XuKjRJYirT90mRz57yUxV8yfIhfsMiKyonYwSYWWVHNMzvYxCIrT3jTaTaxyAo5UKTgUYYvyAIJinAPG9X4ybm3LW+L+vmi/j4557bl86AR7mzaeps0PvBu203bb1s+R+Jz2lTU4Sfn37Z8boh4oPGfimFbQmdfCviRGlVvtMSyHFy8Zm3A1dWy/N9LhsfZgCes5Vfxzwk2aInlW/xs2HCLVHLfTZnrPH9Cz0ujonsv5x3SI5tBWblXoFPVyg6vYDtoZeKVdOL3egVrjAc1nJyrU8EwxkMZTs7RGhA4nsdwslVrpuPQoxhOztOa7pmfwnCyTWs3QqNO8EcVjC/SK/A/pAYryRgvFOGwLR7RAIRUThhjUltG+tkMP9Og1OqCBsmCfnpOuWbVONyia9aMWf2SxlH7BKx7oCc6NXTbZ8bt1e7zpgbx1O4T2j09nKd236Pd0wO7HUmcUrunhvgir544/ngq/vTlXt3lfAcm2Vxs8auS548tfqOyw7HFL15eYWzRRS76VuVI46L1e4ZaeXU5SI2yqby4tKwzs6m8tpxe3WNTeWnpo549m7S4EHzmi/WwukMTG1e3ICtODwFNMf2BdJanw8Obl6ZPWV6qT/yWXK2yCpngSBX3svw1pOHf0lxXaRbdJ4LJKTCVJsbqDthEouL7b8s37cuKjzmPqGkhYmS/QryJ2nf6cCY5HlDXmKnEm/dMwIYTLbDBA3ja7tfnaspLAI62EcjBRHnqmYny1FvTPawDOUTY+0NThko3L60L+d0wGP7/zjSP/zzdwweaR2rKEqsr/42ZMGxI6F8ct0atykKONyYdpbWzDWaZqe72fYxgeByj6aXElhuAWNmgRm6xtgFvqHwroX325jf91CCcyBBPccwbDtqKmJGIesnsFAflPaoVwn3yZ5VQK5KOeV0FWYA4pJLg83glshCQjMxMqVhTHYlxCudzAUKyCgSBImus9g/pVurgW1Y3DQq4CgFrkx8H1W/QWPT3rbIxKbFZl7fFFhfRq8BEBtlhfAp6sr80WuRqXIW0ZCA+1WLySMzAnUoc3ABOsm+1PnTTvub53ZucW23cY03ExMLCJWISMZGIK4z87wzxhBIeARfL71sVYsU3dBlTBFTf0/5ckZBO9EWtdyMheVIklTs/SqhtuyHjNJ0tCbGNQMf0Dgc3Oseui5AkkNYX1QZJwNI+mXOXAPNFcLhEq0tBEV55WZrG6hhG1kHqOK6NGkSB5/CKJWoHG1/KwoqJ/Q3Zi2LXejTb99JXlrDbo1EQ0plvcaVkNKuBpzvUKqe9+hPrDs0KTuKWVjSV9+HYKwVwz5J5tWVHehkbCzlSJB6uLUQnJTdxRbNBs+bgUlsfewff5/SC5+NHTV9SuEgcCPA4dlIt8xBKfEBD0jCZhmyr+UthZ3V8PKVSZZqXKdpBZqdddKEfzwttaaCe3SfJvXjMBT4S6W1ooLCNlCnpH2joh2wpyZsRE17g+4gPPyk4fFD6uATvSSOqB75ufcBUU7EuATOigbjq8jGioaBplWBjfpVQl3o68qEP55TWeif/EHjiQ76MxOkqPFfctQ4AERE7VC4DgIjQpn6T6MONkkzeP32NpA1saKlnb014oY2b5JRpr9FWyPhnB5YPM3bnyYgmk9pnMSrjzxQQCJtPa6X6u4F+e0pPI3ToD0uo06vE9I341cv6vYqLzYz9e4feFSRrV2RwzEc9u4Em8xvII6AftXKHoqXih0pXHopReL4i6jpfOqYmWJLg8NgLwdla9JV5YyPKraJiFb/ThbzM3IPUUlTT8987eeT+OomXRB9D5yk73CQq2Gp5SUbJS2IS5g4th4wWlVgrWaPfIaQw+W4F4Pw1DZIS/S6ON8GHE+3E5hR/LbXpw1XYwPVUV8UKdMDsPv1D0TrFyxuRhKzpQ2/8mzl6icM6HrJ38EKXWJotwWizISgwL3si+3CBi8FuLUAYf7o/MEyMuyH1Kzn2cRVtk7Lp1v7YUG8muslLRBoAYNiEG9U/Nz1PdJQ0BG1E4PXPyvSieTRCG+08KjrsZh71cs6js54AI6Pn7dvI6F0ay9L7YlabtVJR+9aFdDGhvDkRPBH/aN4wmNSonOANmytvmGMVesNmc+qEDYqUnBIEJA8VymMmVaIyXjMDgV2kEYq39w8HcxDMh8Y5qWdRWFhfzYIaAwxXRe6PDJAG/E5EuUj+4Y+oCKf3A1Ef/JC+USiNiPhv5cjgNrsomiQqtMaSXy6mKWzEBvNMJKVgnq2Ts9ABQEeiWGiyfxFqJQZLtKpK9L5RVvKE3TLDMZUISiZnnkilRbH1dfkFdUkAMUc3VaqkeSxqrd8hXGoKLjwUi5ZxQ0Lt4Vi3TkMciyfk9KfCmXGl3GhdaDjPup+gFCLH4SykcsS6iekowKEnVJ84fhz4EiECfFWaw4kAzUnhIRK0QQsneZmbNQ/oB9ars4Wrcr8cheTbLcjRr3/1D/WVmTGH7HyWWk6lVkG+aRB9mp/xMgHR1XL1I74B3SwpSsSGkGHGY4qGRgc6AbDuRzsP0448CRKmb3U79fvZFHZo/dhU083Zf52fkFXVT+IoRaWdJ/0gETjH9n+HeSFnxwL0tZ6Cb2IzYQYU0vQNkDc4GyCahtyHt+Pvzm4JzyPG2ufmj6z0ciAbcsCdH8MnZqGaAz7kTD/D6/XSofLbEP4Z1eeQqDrTU8JPXPDNYapHGo7HvzflYVDJYThbyGuGGI0LPEkvUGln8m2QbtL0aNU9kMjWBB3q2X2rZ/trQEWmqaFQo+E5pZBK5GcCY2EsqtVoAqIX/mio0UTKW8Un6hdMOOBqpEaTXsODaQwDprV7RFLkFpdwG8yUsKMMCo+q1zGTjqr38tSOv0WfN0VSNAn+aeANmL6Y78S06zoY/aUVDLqBVzQBxEtuWNWNISmeW3iLy6Je74yDB2oooDKZmDNGc/zf8lUonAFfFXsPItnW4ntTAK9gjLSps2e9pTMQj+T/4e1LoOMqrrTVrV0tyW2wjYxNaCv8E2ch4WQbkkMm6f4JCSEzySRMhnN+zpxoaVmNJbXcUhubY8AG2zEJGEFYDIbBkIAdwMRAIGYzYjdbEIQEE2MQu9lFgGDAmP/7vlv1+nWrbQzJjH30Xr+l6lXdqrp169a93y0WdGbYLqoTqk2eHi/I2aSCqdBbBpjjhKZ4i8NuogFyVOw+VuwWuUVUMdA5GtbMILnI5NvyslVgQYd+iqJeZm4U9j4tQbFS1ralSHBPNCa7CIuE7gOvW44wzoO3LvREgX8D4RdlLoJS30JliHMltt1cTLTYgrL+yuCEsmhQG0ysZsAb5xJSRVhJH11RCCjYqiBsLkMVygLBQhUaP7JQhRyHshEUUBqe0tgQ1WNURrMbdNk45+Q6FwCS8z2DJ9aRB8vW1puGUwzb4Aj/0SVow9IiAWFcY5JxwTXHZGhKHIoIvRPp2CB2dk86HqePMun49xE43cjyaihwUYKZYPK8RfjgxTioMvNckB58daOLD6vGJNqb9UGogjC4eNjbx331qzYozdjAAR50ZfJhuyUgKy327ouYO46iyDr/GJj2VesXLBEYI7MQLFbeQmDyYT8Pp2wJYr8KckHwWeqvUoNgo8oBq/qYtZhEzMIdy3QZ5OMXPMqdjfrnAkcGbj7Z0/2Cp1jTuXs+lh233/y9Sf6egMYU5NMxSoQaxugkxekUxrIbbhKM19C7uD1C+w0ZXIK8OTy9HLZ11wvkjDZ+6n/wo3IKBIA1BWEbbR292IJogo70mDa4MBoV+OCaRHIj70Z4TVDsIvFU95DeMIq6KRI/ADsHmcuU1/sUtDSR1AjvLsF8BXUlbcno1V3AF4fLP20uzIW7VL+y2HRM4yxvdJ9hAU2nFLpf0C1BcyNbnMWYAOjpDAObatrfuOgZtUtCOqZcLLbc9Zl1k70npzbuZZIEIeG4FOHUadlpEgIMKBvMGNrbdWoVYLHOebkOFqAcHidY45gVKdb3dttdm1eXXaQiMK6RRnQyCXwhjRACrq1SWGHgoXSYC2crmhLoR+7Dv8ECyEe8YxuC9yo8nLAiE0Bqw7Y623Ma+DP8DmhSYpGYJR0cRSTtRmj6xI7pg0u2rqBvxrwdRUIsGhvrcF4w+EW5wh+bGnPUp77PURde7gIIorVk+IXK1JeW0e1cAIhF75ozfpl3qWwredf8/su8axCLRe+aHeexqZH3S94VWgl+pvYEsnshjaBsLo8E0GJyjNq/4kGKsFrLg+VWCBwFkwcnF3JABBamNOSim9o0iXURjFU0TUJtQXcybg8ZPgoh7GnfURn/E3PblyIO4VFo+EHMY+YMQDogWzjNm70Osx3TUtegO240I0s0ySpOOULG1UqvFSpuZyIlLx+/g/1N+gbJdtnQXqR3JsQTxNM5gpBVkEN7SM2kBOGquXJ+dZvxVBgIgdnCrRvgWdVcJcZcNUHQ2+Cysrcv7N9DFvSbHIo2SRWETIQU21jTOF6v/oGMBLVAIUQEcdvMNXoEuhb5GSv8c/JhXKKg6pgEL9Gco5DkXEbAqyh+sQLHg/ZOZLUsShMY3sQzlkBv+DQ2WYG2ZxvLM2Ngi1aAbm7yI1rzJ2tp+4POiG6lTgnQh7Dlr3o2EnC+PXwtdVI/WbsA3Mu6qmyJCYJQ2cL0WKrhHShH9I6imlt8HqZTanxvweqjEK5nbzQ65mmORDT7TKJ/sc3p+eHa3CzaZ8ofzDAxNRjEH0kORIc1dGLo40PMNOQh4tpaPo846OUF6kAcUIWxbomqgIHhdqmdpfsFjnTCwj1+CVj5hvcv2XHVFVvPGkZyrMVTYEfxd6NYnXqVPbe08aaCjaGqSHLHzVuWnPn0xjV3MAkK60MwYbsbLzL2Julqr/P9qH9N9BXZ7KEBFx+/ZAGwnfVCC2XkMKyQ65VY77ADOh9R9UkiDGHutd6IWVW9kaIa19yuN3L7xG/CcJ9O1oXWGQFxJNVroTtaHkphUB+2AA56I1NYf6Tsov5owgJAKlYWJHvouMw1yYY1LfQEeCih1K0IhT2g8KRoGjbPYdMIYFNY/xWHIsVvBJCHkEOzJrSqLrTf5ycERXxmkWgb5By4OPY1XNYVtAhUwEWTt50AsZFBDhJxuHxHk/fbdYApyHce4b1Y/G6ujxlm02OmQscijY1WARCG3W+/ffIUkzULfx94g5TYDI1eHIgeEcEFwzT5C+fRnGA6lvhcL69jc9J8Pj16cc5BAiyMBI4oJsz5CPAWuTfgckQUdP40JnEJSoz9ICfLJN6AfDl2021i1E4ScItRb5ulLU8gJWqD8UyAWlkogALjdH5/slNE0FqpMaj84aRj6yZ0O7mbVcQh55tpppCZbYGg6P3CmLUNVtpRu1o5xz5AydI8H1DCq4GlRxEg6lHFzGr69IJWQkKT2TpGVlM9IkcplAHsiHpgGWIhwimxxbQRyd1PhVsF9io1xAYugfbB0k3ec1IvqT9agm6oH9jP7POJqJka4n3ZuHv9VWyR37gI3OVcNGk0oyDL2IxaxHowOLYV6+zaSi3u2gl+QwY9Jo2ZsT+HSO0WkNzPMImwgAUcFCGwAi4tgjnpcwvDikDVJItwu/UGK4KX3YUX8RGLcComheMwLchoBx6lyPGSq5b8HFGdKe+bzevA2uPYtIjcqWChxIs66gt0ZDvKvQDDv7WJGnsJ/YAMUOGpEDqBDWqgwGQzZsMrw0C5h4phuB6j9XVF7ApvzRGsJU+G6pNQUJHHBGBBRWgF6ETDr+SLDMaYvNZvIz2Hy7PcCyhgZXI5Lrj/GQFaJ6GiaQywj4c0AB6Dk8JBJWiRFNARJmZVyXORLAn9aXyx8LCFYZq8mDcZKzNKxgRrDK1wwFwJp0CPW/OFplYOCx16FB0yTfCZcI6urIhUYO+FYwgynzH0CGB2NYL4C36yQmwnL5A3B7cBNDLkLOKCFtHf0zQN0nFBHQAwMQbG0KCmTk1+2/IXJcM9y9iB5qXooRYUCNMHuoUmKRvUplWB8S22TsXHbA+COkDYRNQRILZ6tXZr0CdZQ238ukC8QuKU2TRzxABzuXjoE8foyB0+wFZV/4l4GItdUphHHSBFOJCaijthdnNDRU1NpKYmWlNTiZ2xJcMAm+YW2dKFsCfFZJP82TB/gKzLFtLVGF4ci+H3K9sTxN/0nsKGDoHWMEy3yFq6kkPEcmFCk2NwjXfLbOmviAbqZbmz1LgkmllmYG0lKxoSAzfgpo+WgDu+Oc3QAB3v1ksm0KpQjizQKnFhRWy6xcR54fgtBrNzaiUh9a3bAGZPOTscy6wVigU4auvDyYrvxO6wJVWwnNHi+tjC0hcuIuFHLcdiigyWUcHCueStePCWWSuUf6sueEs4YqG3/HpJy/3gLUm2btEUeluLpmOku3PoPqBKMw3Tp8owvXLugO08mnm9TWHjX5CNk8kuiO5A83g+Rd/VU5OUKvmgUg/QC/SgKnZy0frCuQMpXrcFvRMOVLSHUZS5bbAwzi0RzJIliwCIXY6rUVDTetmDFUh5j5hjpjpMAmwMYEtSkhd0476fLXXtKUioDyInQlYWFd36YQkUEktM4BWyqu7WLaG6gvdZTbaf3Y8H99lAbH273xLcZ/Mqf3guaVWO/KtwPxGbGxC8MjmBRGsS0RpANO4WSlY1oQBPo3oKHwI+pZbMnpJGJWkLaoHxKeXEX7LYc77zXGzCuMki+N4jrezdCt/DX1QiYp15t0wVaJKGDkTTM9K0GUSPw54AcTSlw9Xr+hF/3RAo92d+Gk7iFAVJ5Rd0zAFj8M4iZLvJNx3wPffi45cAx0Nhr2RxNXsu94lRawpMTq7hdoyWT9x8pVKlcpqQDiCqUqxnxeJvgFu5bBOyLo/A+1us0qVnYTA50+4gtCWiqNqcNejcYKq9xqPiN1holuj3/zn6fSdDRnh0vJhWPbyDY3AHtkAKWervmM5IjWgKVi9haOXq9znmFyF0/T0YWLsJuBWgYB3zIV/+x2N9BZ8+1sIVOFMJt2OA5mdCav4VT1+tja3SOeoMeAuDXtOxZg1LRuZgkpi9xu0HuZXxHaIJ4r4NFQN04d4BQid6znB5ayX5ArsAFZSwKxaMJcL7FtbCHOLSkVbyrl/4ursw2+NdF4gV7mK6i80E3hXPp4bO7mKjiHcTsSGvwQ2b70XGm+9h+Dk1rPNddMpXZ9AXclcOpoFA+RqB8hXpnQoYzEg62MhOdLBLnJZADBL0WIsS3BzoCVAgqasdq8R6P3V7oBHAQypNqC6htiRgnBhzqEeR0gRvFjhosdKAxIrYto0mfmrNuLSVlgtKOGeENaPKlrXcTYPeIoh8V+VxzrFmcTjnQrAFC7iRcQO0yjQ7AyKVKxKUmfQ5q+HABtA7unkbQOcEFVj9CULdkEaYFbddbf1NcJ0TimQwyVxcSVGYtY+btwt3+rRhJHlTOyEUDvkEe3oS480SNNaKAB96Ms5SyXnH23wued/NeyvUlGJqphTjbIoGMcj4FrM6ZYergS+88ylNTVHs6h2uB1WlPrHMdV/EsnFhrb0T7SQ+MhXvZ3xAbD2Kphr4SFC73B9YGvRPA16NneFLVlykhJUzKBmRcUqsSKsRJRVFmcL8WWAU0D4NrwB0fsb4ceVF+fhkODA5/YwvLoqHJ3Qz0pMaAgWgtLG8nw8MBlhaDqfN2ztQ5mnFgvtU2MWv4nKGLqdcvJOxGxiFXJfcWWNwZyo9rpTnBrOzwQfIjbOSKOGCA5Cumj4c8MS0XeHWKq5W5WQrh0HpQhRkIhR5B7zZlj9FMRedhpqzX6/bU/cxUGz3HWFV4B7moUKczbaPBxKC7dBWvxzDQl5lsrDFUo72OyVb+P9lG23QV1amvnkSI56ftATH2mVLCLi7/0k4VOJOTaoGd7y9MF6M6MUIXwQTIVBuLd+u1du17u26WN9u6Iwk8ZQohMLKIKfkka7zqORXd6FYimX/4Z97bFeKrKB6mJ7Lf88UGcLc0ve8eKHvmQID3zPnvt2v3j/uc//b1dvl57js9DOcTbjRYoSBEpaj2bmM1bmf38o9C6a2nVir+7UkmKXecLIAgAQ4FWnM1nCSkapgT/3iBqEmJikVKJniN0ZAYdXnmXFl0T1bIoZuaJpAYMXwPZaJoczC9xKxBVpBAlOOKysEPC67Oneimy3Gta7gQvtKLrQDdUsBfkMPF9pCffwqnDEB/Cr81ILqWrh9yVMMHc/sBk7GRfyLjFxeuJ0ccqIBOoOw8SxYC9c4msdp+ce3DdmP8VllEWD7qYrdqvakDkXmDfGFmtsNMaoiNq94d8Jcg5wRl8FpIKifTHkCZDoh2sncgbY9uC4/e8v4QftCblHuTLycQUJeapIkTEfjdzlNFWnAZReWKXdhF0SGI2DJhBrh9O/6v0KxFNZzrUAbxC4lN07mJC8Ri+KSTYGKnIOv849ldTOsBUwYmQBoEAvpk8PVOEJuItAYXWGS8bnfooXe8dR7RxT/ExZv3s7TbRCyAy9cCItjv1LHfnhhM5tSS+wcF9YZbhqwt3U6KlYxiKgq9ESUEZaaIenPBfTwOHSKszNO/JPw5/MxOfGGnb0oefMWLRhh7SUoOXbrHQrSQywF6jhFrfj/8+hzUoVrTadnfL/ykPgn0IMdNJ2C4iVrD6NmahC6zjnfztG0SUZBBsuu7LSvSqj3CMBb/TVoCNdVyx7vhsLQ6F25UIEvaPNYxayR9nf/ip/CTgo51X4H+43y6EDjNcjT05y9XHSbKG5Q22kme+tp5XcGbU62RIqlIDR8A0RSeCDyKV6Jxi+lSO4iARh0n3KEwR1fWUSYa+jUXNCQRB31AwglYtxaBm3JRVWMP6BAWBSZkUBb68SKpfWtfFrc1OAceJyWUE5R6Hgwh9fWND49LX6OVEJuG9A4vsK6QlT7cryDYybeir5KTa7zramMny6hKL6DG2H63Cz7nKEXOT1ACOuNbr6GxiY3N4+sVyIdOdx2CUdDJ0BKlDTq5SER7D8tGOYXT8Lh85Bkoqm9cKxbQFMCXEEmhVxUz0VTrVPyYb8achAEXKzdKBDtR9noE5KNpp6El+n+WhE7riDU2UzKpsMkGYdy321pGSwlS419L6knnFIjucnfcDqN5Gj4BpQZya3hG1rn20zswDRjWW845bdcnEJFgj41LwW9Cj7oTKYQu8cK5JZawV5c2FgqwLdxChPTHWT+t1bvoS+t/R/+UrctB2xla0hhfjmgmP3EtiJimK0IFAda8Z4nwcIjMHXxz6BSBDMjbpgA4QwsxJbAsV9XQ2VSrd0L2AFrLngHA0GGloZbQYCsEpC3AvCbg7SAyaVhnvrlAngKfJQxc8A5mS4BxMIImxvPs5b1aDw2umoEiiDfcoUYIIFlYgyLjHmpyuPofa+LhRFdITKVLpfZJQKU6XLILhG7Xpcr7HIFi8NPEhgwWLzU+Py9A74uEM0MFwfYxYG6ABasQijqQkutT1d+VxfflXsKshGuncxNYFpEQxOYFtGWBC4ItMgCmIrmQVTS+8lCVmJlBZJNtkpHVrJVy7wGHpTAIjg2cHWXp78rhj3sDh7uK1AAV2B7+NOih64CB7iHRxQ9dFWd6R7+8NjAtR8PgUNCYsnhDYWPpt61hAi/DwLAJ6K/cO8L8JPQve7wPUTL5r2fhu8RJQH3AMOUOvehDz64gPdq7R5itTlCGBRJLHYiNhqdyUqpPymNUxqxkB8NNF98y9byQTRrKQeEKGKWakT9Kww+wP2Z3mKHex4n9l+grmOUbcrBORP34FFn0gc1UndetrOofnTnou+Y45MFnJcC9ksBD8Z7pNJCIv62Q8Cui2Em4rbxLkQ9eYUWVvwfV8rr13fcFyL4gvdgoYZdIcy4LWCfcB9gxnh1YwQgPaZ7Ct5OVhUKs5p4PrhczY0BhHfm9u/GiPgbLiDa7VqYDWJOf9ya/URudISO1ZJAfrURxuOGdH0YEXQAPKwYn1wXmoU9zMidaKE4odhXkB7nO3BSx0rHsp0drAIkq5q1kOz+/7W1GlKQcGwEtiVQ4Yk11BICjVce5nLscjhUFjPE4YAHeXCrms5k5P2xXjHNFiy1RhDJSkWztQN2YolT7nol9m7N4Bt7t7Iv494t5NXkDUjFrdy7ecZO7q08QxH+O5xjig8aXoD9B1sGVIdOziMyybmR9+rVpYUQxkjDDs0wSSRdFJ0Rw8yfUXIcDflNpAPNjtLixdtzO1slSj+r0dxTAUj3dYsELzBg2P0Hu1ngOSWu9ObMP4D6w6Ee8mPYoR7+R2hxP3WaRsuMwkylCxWu+S47q2yocN01t3ZsuqOlzirsV5u70ve9t9I/ItuR18Zl+1+22i8ISIEm1LSyqQOXWvTzaizyHU+qTn2dccKrCorXg5aCjUY9z0O5Uv8imO/Y4c6J0Zmwc4LGIiD+AoeJTNc/jsH5YUWk0PbaRyEEqo9wJ67+f39eiNXo8vo37THLeaaavlYctYchKrb3DjX1KNUEPmI4t65cEH+tLIs0RBLPZZ6pKQP662DKiVP/bFNPaKJpSU3XXUw4oeklkYpbEyKCvGS7Q4MqB/75Cuzl3eyFGhjUlgasVlvbZ1fnceh44EKygkWZIZCmHodO/okPPphgHQoTqcxhU9Li87YJrHV4YL2ERcUFy6mLFlyYztwlqVBOCdxOxL4XLIrCcaUg90iRRKGGQoKWXxQS1Id4kyKXqCbhTuue/9Bmn+MuZjWF0AYRBivlMHFQ7trq4x4vf1RjC1ncIWaGTrDDDtk1caUX64xGjyOTkUHpj2zPKZI67vCcieYwbUjdMHzRuy+e9/tHrj/+8By4B8FOQvd+MgcFJEhH6vh/n4MpgHLE8AmPLrr/wbNfuPn4nwBVMIfxRGt9Z29lRhFSziHI/CqinXNhaQab4l0ecBB25A6lcLZzCnclJ+OPfUfWTYFJEq1YzJaLCCW2MgdD5xCVIt+BjHizJE14oNihscM4EzGGr3ljcQ7HCZRTGGowUg/MbwSWk95xtm2EAjqW6+AJDyuCsBWwTgUgYi1yTbQ8Siz3J4MIjxVxQKqb5urQwnrUR15VQGdh20vrIMbu+pDhalLSLPgmynkYOf1ryXaF34Fwuw9yVgyWIBFey5/wqDhwohTRJsJffqF6sOVGBZLlJk90wZixvwKvSEtMdF/6H5u3TgWwilwob+k0gM0Ai++aUEBOC3HyT7bSxtgqCHy0fT0g+HVgoDvmDqswwL4JhLvIbAWhJvrHoWsF5gOLQQT4FfC023AFxQHrQ0yBQ2ATiIcEhazlhiveCjZcGSM86l7AfmyiDrur8DIPm7qbchqqKr1FXLqCqbuAykwh8uNgcwo62OSIgy0oBEPRHnwyRlshPbVYQDdCT4B4KB40WJbM0qmqU/w4DIzsRQlpUymeMSSpkBmgJMPPnWx3QphEj2a0FfPyc93DbLDdXpxaA35YivSgCKZylkRvYdencCadq5fAzPRWJXRTU6AGGrfqDUPJWGNrrWwAoPJz+w+v6vm2kjkCBBvNitgU2mgOtB9hxNjCRnPs38xKQqZYCiruXPhkn2MGyHTlpqNxVOPZeCatWTWoS+J6kF8YcJVxLdKWigW2hhMJyWRkPAfpDnKcOWdyq54mH2Gx8UdBwD05Y4T3TOh/Ed4noe9FuPvRz8J5VbgQ5gnthHy7WOIyWgUxf7wUYA7nmkHjwFIx7HffTKT8R87lTEWWL87lnv8DI88WjnKCG5hOBjgOnAEX0+OHQAfsaIupMh1p8IxOke45wJuhNKKJO8PBxQn7ZoHyOZhjeBTcHcZdvFeHqKYVCSSyu0P2bpwQDIV3gdqG8KJQlfobQMNi4nhrUzjxKkvcQiCG0IeQmLkhA/cN3GC6ILdRy62FMA2F3BBl36wFgORQyG0EiZl9kNuYyw2fcKXADWYUZD9m2dPsIJT9KCPUhTMCeL1yRmau1rjBjIKc19FbOZzzOrzBPIIkwy4J8nF1xQ0mCfIAZL6S4C1XIfdGkGTM3cBbLgmalmCXNajAyu0Pnn7l7+6KHhdytpwMT5pXVj/y/MVPQwHlc0Ua3l907zV/ePuOdwuNYXkN18I1iVCKtQsAKUmwxxqEt6VDGrAda1rpxUR4qxpxcnixY29QAuM2/QBXZ8SDxYyWW65AU8oUaMgV6J2b/ojpypEP9/huaSEXWiGHagFjykKiOFBiopAoraATh1BamAgC4RA/mlUhFDrRUFLsjVbshkQjLmOJxp/w5ia7CfBgXW6sdVVbph8L8A9tQxOKD6vlXmVqucrVKFzLMUTT5LultRzFfdaFcNKsAWoppMhVqKVAJEfxw1AgUUu10lg1W4kkKVfdZb66zbhsTkzQzfV2c0Jioi5X2GU8MdGIYbVvSsR1uSIgBiYCI8ZHIEhLGYKsc5UPE2QE9/huKUFWGUFG6qzZx0CQvdFnPgehYprIgBvwm0ergzAw+8cr+KGesQ6EUYcYwQ91iNHqMhTaWl2mQ2yzm7HEJL2zxii0Z2KSnm41kuyR2FOXa+yyNrGHEUx0YjcqIliYZLVGslhZkk0tQ7JhR54wyYZwj++OGynufuhddY96iGSkGLZ0NGBGfedahx97oouSqOpbw75LDeEH/LSQiJSLlVBujSdSuG9tspsTEnHranYZT+yjy21GqumJfUSq9XY5LTHdCGmU2zsxDZdNib2tO3pybnPkRPNPEhkDuirWAulaY3Qtis+yBhVQLetRBVYO9Ve3GMKPZnREVlsjaSFqC+zSRAOKat0BjWnlb3QdYaNdWkfw7b/eSjjRtf9Wu6x3w2lZvSv/Gv1wRZ4S1EGmX67sFi+mpALrXAVGXAOOotyN6A0sdwOK26R+22QfK9ckK6wEdYkJVlxfoI1BgUAFK065wjSFC7OehZmKbxsxx1AWEExfN5LVe5bqv7LVfQUl5jeKvtBkX6gPf2GYX6hN1COXWtfRtlleU8MZMDnHE3QaG+lKyBhMoDFc8bHP4sziFP5ILdvAeT51w0X33vP4fW/CWdAxFzzl/Qvuf3ft69s2FUYQNL8EDW6g0DIuFUymlGrxyxdufuy+1yB7O56O+3y/NLcRy22ogaLMuNywjFNuH9z65nUvn/92MOJHXW6lXwEMOOWEcV9ZRfdlbDc1UDQa9xUA+ekr5z45tvk0QAr7ormPlH58nftI6ceBBkIRZNzHEQ9IXKI8mRG9SV8p+Ticq/SR0o/DrEMfKf34KO6Xay0gfSifkuyhLFQ2pdmPuGzGZe/eL8lm2L0+jkTufsnrwOgwlOWPIpchTTm5DDYS6ryVJgwA2drJZZGCXBYZL5cJJSSIBfZx5DKALo+Tyxi6rKxcZoUci9oEDdhyJ5dVumkGuNLGb1fhh6bhdSj0uGl4vRW7RC6zm14uW2bWrD6I2d8plxH7eZxchs3gcnKZzAAINO9EZNRSU+cwaim5bBUQYzV3DqGWaqV+L5aVqy3saMaLZQYtHYhlANgpEsus8l4s2yYSBKHZ/gFiGe1+SsUyhLAuJ5UxODPB+Z1QhipD/0X8fyeVDYEaksrG8GMfJ6+pW/zUdYZvub7wwzLEwWq2jERmN71EZiDbgUS2pqpIIttotPIS2VZPKwt19w+RyGD+VCqQQXtSRh4rJ4shpIKmcgDG2yBZCDqpQ43iR5EsdoDrRgCMkCSGpe84QQwBZcdN+hb5NpDDgDlWkMO8+LXNqObFrxV2aeIXRqTvcE4O80QE5lS4wxWksd2Tw8YqTXQYQmcx8RxVLpLDAKZRKoYp2FIghSnWbokQttUK74WwZXbphbA1nnMgHMbfJYQNM2SPgh3sXAgz+a9ELLbyeBlsmy8PInj8vTLYOtCvvAy20T6qaCJ/rwy23vLahQym+N0ycwnEr5EG7iFTm90pJ3vqsr6pzX7qEV2UYKHWY6fbbxSEA+bCkzoAiXMOz9yuKCB6mTWei9c+m3BI2rnHF68x+EKLwOfQCQVi5Axa/xPlSF5unuRy7Fnn3c4ZboyI1NLJGuC2qUo/XdHi9+AqAMhrO2wVUNTZDpwQuWNfx9ZFcl8Hr3O8lNSGoC0MQNpIVs4FHr72zWApQDiRQXOMiB1S7IXB+nrsEOenTmAmGPBC7SfUG9kvGOgMnSEd9I/bWPDx/yxEnuwQqUI3LKvQHopz+NQuCmCh3a4JFZdheynvmhH2ytCGZanhIS2vhI4Ck6LYdyMEe5UDl9SzsIQKNLNRXARqWV4UXLFwEShkeZGIfUtoRoK5pGkWA9oGuzXejAtoebyrqLIKeeuMIKFsb3H1GR/W/0L1oLJh/bX/V9BZ0ySUSnmLEoV/8wirH0OfCxThNFWOJi9HfENtprHhtsOH2LbrSvXf39r1bpLsyYCdGUBfThNkMKAvvT/LN5EBe5lU8bSBcx2KWxqopNlhu41lZ52CjgKbDSKDVc5GT6X9vMCZ5eEGbA4EcjIsDdn12BkRmGAUwZ3Bwub095gUpsHxf0fkBDq5Bg602vMyoxUZyTtARfOZrBmkYeUJ7Ltx2Jyxt4EMRfvRJJECZxIJVgCFDA8q42OvYi9AsUs5/g12DW1KaMcT8InGURioLLQLwfBVxbsQ2rf9xkcbcxpqTwVD7UBrw0I8bnqHhK0axBIric9ILviDILD1QdpscsHGsdVES2yhVIYCinOfSLAXIRYoW/WDnLVO/I6Qm5S/DMajvxEYAutG7KCiGGhEipohpCham3MHzePLW2QRpDyB+PKOaf5fMs2ZaDpsjqmo+L2z+PjiECzAsluIOB/0+685Yxw3aEuHsl1b+RFrPDyGVwabnUFzGUjbhBMJa+J/1h6HiRFyOtzwWuuPw9zIZ/jdAMeaGjgQQsxQuFjMxlxXoKfA7DBReRzEwQTeIXr14WvxHmY5OPJxKxL+b7SR0U6dTe+O51vYWZHmADcakzNDPJ/SjMaR35Vij3BjiAnG2Xm7mGnOlY3zGNrQ7eIBQVjbh7azXgV4bO92mYi4/XMD9VA/T5XEutNe3snPwSPm5Hjy8pdv5zl+o7asDE7KfgHkIPD5ODDIouCJ6LY0bxJQdJCQG5mhvcvPB1UrWIAH4eCQ+grt3POJKvZZWQ6gRi7coODJyKKKjAIMm34XZbp6l2X6WjABmDe/i+odv1OXsHyyYBahCQBqCzF9pnSGaODucfkXgWESA5YDdEWl53GR+L2yO7Pf90Q+LOXm6E5TfqF4lDr8sPh/Bm46wEgL4L9y34595sP7hret+IplDXsBwUlqNzVwTtHOP42S4knHsSK2Cf+5IJUzQEPMUZks8C38xI2LAxeGLzrhodxs7SPLB8OcTdcS+2oxWEcRrLAMTlyrGg5H4F78WQgYtFKxMKQAskmBNojkDYu0xd5d28L1RGP/XOYTWGXj88Bk3MU3vkI2KZQf7lKvh80tivVbzH6yMWykW9JwxZzkyCKiCDFwUNWcaTnQoCSkO6PtUy5BJHj21yrEiqcAwlhdLsD5l4uHrFmD7kyQ9YP0C2Kn2pMn5nt0tTNodCF35cM4G55P0Ffxrg024BIQtk4Oa1XCHq9IHnsoxBeLR8FHHG5sR2t0DjZnH1rUVYSyVtpPZNqDjOgV7LiSGcMVIj0S5L4q9nnwcw9lVhSR03X3S5HRVwTW4lhskbUesjmJ9GbQG22VKyhwhDfdvvlnXTCaAHzL+dIUmxVCZ4d3P43MaagLMHRDdqtw9ko0eirqR9a7PYS9rUAM078g6lDOtmUJxJ0YiL7bM7Yaw4t0AhhNRPp46Ic7lzBD/kniNfmXoIpQg3L2KbGn66JNAXVjfq1UB3nVSZ3Oz433aebW2IpI7VgyA0TK23lUYCIFKhsjRlTOTdb24KIO1h0Iajo3UUH0eqzJ+VgmC4DPgcWImLd3Saz4ThNs2oieOJis7cP4nAUMz6O0zJPpmg/9IAM02UUTaJHZHUoUsh/k5DZpNnlQ5xyK4AwC3gY3PSpGkYVW6C6cANzb5sJ+Tha5xMv/YMf779XmyPGIicCmQ51qk/JbVyzdSi72zFrewD8BzvolAnhh6cZXE4hI7myM1AX4rSbaly+Ep6WZoOBzREBTzJJmdR643bALNHOM3httnbAa0X0RUQthDK+LwE6qYfZAom5OElOcuK4Ts6vx+C6UWGCLZMYu32qid02gUOocnrTEltM9ltsOANGZkiCoot5INBicJJQRyNCQV6tm46N0SYYRsN0LfURWPszKZSR8R36NzQRymP05QjFiGqlDMBuFLmF5hQUK8Y9uU1WHTou1VqxNNR7XOoEYcWQgiQmAiuM3KdQRmczik5g/qkUkscmKhVIzUw4FpC0gtRP1/CyDjRjOJruB9UCMYaC/sDA0ADmZ4CEKigMUkLWJOoptAmUwlGTFkmFPOorOMLQCQ6XNVhu9hzFMZJ4rc/kKohDSQt4wL2GMpvAMEGJo9Fia1oWpoeOlNRKxIxy6mrWEbFSFvzZBjNxdGVi53nDExTcT5LlwuwNwuBgILWpBy9WtiMYmEL5q0BGMpJER3mVkRRt+xmNLNiKuB9OgZ2tiYKezvsY2Qn8s9CbEMyl0IyQoNDmjvlWgWoqULZzbslK9XCJt7YnCiyWT8cLiy1mWFRlyekH0/wRcW8KgJAf5aShuMCgjVg2mZp7yJj2z/bwfcp2BHGKeqojtZ1ya87aL9U54wOKgZGLlmh7gj1lY8jtRw5z2JQvVxT7ps/OR48vkNrN0Vg4QxLg8ii8PZmJ0C6PYWrGGyxEGiuurf2ut4NI9Eu+PnRlVzJEgJpN6MSGGOEkfmkMRODe3Ksy6nEXoo3UoNT1z4K+rIANRBMYP1tnmHYIfcP2OWQwdwhDBVZ6Jtep1zvBCFJNM40A48MsCJ7AdVHeLF4CZy/FYM1DTqDmWOEUWIpIX4RKgcioD3FgYGDGKYmjxZwHOQQx7y6kEODloTQgOWMF4PZyoPozCP+MUJwoHzTUzaC7vUIpllTXXp0zhCB8DqPTowsMj3TwrnOO0eSDE9t15z1W3nWkr9LCZoy3US1fjn3LeS0KBCoABTYjSckxDFxGrKIAsItCojEfpPhh80lQTbqQEMnYk/nPNrAH8pyQsEiHk08jXvqfe/lzBZe2fit8x1wsC0iNy+3Y2onuNlPqbi4r9uhBdg7opuk3Fd1guChxr5aMWhw2aM9JkqpAJ5rTFcPwN5CJn+Bn0cEorhWhBcYvQJ+1HIRRCcI+Gn5J8ISSqgx4PnVUBZ8vWMwwwIRRmBlHDi37Ua+iYM1lVEzyz5BWOl4GNRAUdvxabrmrSh4d8jwFp0RpzID+AH6FfSMG3wPmgARAwCgB9mgJrQRU71CHy/hS64cuuPnX7ab+6emwz2CqWM6kPfn3dsjtO+8sJK4//ZwZoS/31uRue/tXq91dfjGtMk6nn71s98ueRl66+AddoSOZ0Bnx9EFf3JhBUsoaAB01WPC8aA+mTb3oDZnr8bXOx6eDzxPsw+OWT2FS5TUGJLvbCLvHrKNEIvx3blxqbrS4L6ffnVB0ffw3i1gAWfbHYJxzVQFl+3xYMCxt6QFV22n3KPa4bROPw6dSiMeTdpthl9iJSohbYhZvk3yqo0ES9oxaZD59gPIqu0DXHHzfvdjtjwsGP2D42rl8NBGgEINMF0ZEtNT6ys9R7l41Uunjx4h+yqOqH7Or8RXBhIrtNYZbc9o7Ev6s3FNAh1lKGIoi4EIvtYSNfrQhZ5im03mSH82aucUgT/zleVMYoKxxNQ2W124J6LrodR/7WFW3ZFJsccEvUnrCIGKkTYpOYGluItiHAd8ciobTStloZub0PNrCcntjLK2O3IZDr8Vom0WHeUE62QZlL/5MIYhpSgUcR37uIEoLD4WtINwfM9wJadb/GK3bREUjNBVdhCCQXTka7KD62jKzNhbvttwT6LYYp9pzFj851sGbfmq2oaYGF/EEYx1pkSLeq54yvllw4zJEDgxohBVcgdCj1S3yy2JwCEL0FKAx7J4c5cBAlGR9Org/9XsioiEKKFQHkeJ7cqGiNpjg2j399SJKS0CLFFEBodoOLKcRDT3BIbEKhM8TfR09oVlgYrj0q4vQNDT1GxEZd2/pamOi6RjpDgEF6XT9q4Qpxjk0MLTVtLP53pVAtzYfHALdNA4cWlVoc/jwOeFeuCC6sl/k1UeFOlhri58LflSc+2aa4sw3x/Wz8EYDaZEcQJ6ElUgi/WC1P1ACWd4lm9Olm569dPnPDCD+dZKAY4ugUxjkFUNUO1wkWyGIQQ3U3TfK8YpegePR13WnxVfBGTSvadkeB43+ItlZzk9CIXT0bipwNwszzEQmtFLamR3SU8pkrRBYexpcSr9gBCpUrA+tJDSeUBg2o2Wp1FxuEb9wITSww743Ps/+Ik+ByE7QgsT35zl6Grb/lJXXKmIgDYV5ys70x095YhBh3fGMKOudtzh0luZ09V8yYCb/CeUJC6PN10WYEc3LTsdxpXVwzF2u8td4DhDPOuwcIT13h4L8rk2trLAJHZBAD5bYKIYXXB0jhkdC7keQVNRbAgzER7sO7LjYvZ5G5ifpDprU2c8iIVcSnGOQRg51QnmuUaoBdtjFYGXCtQ6HYFuaAZIWyXvoFt5DVupH8N9FMuaJWCQx+S/Irdy7r4k9Ktci4lQY8YBAEfPWrQCIRvO/BvIHYixY0hRsgiA6JGO4QavfDp9RPquypPCiDp76fG6TS97kJODN6sIQ/7qMg+mgrgqUTjr/Jw/HL90MRijEQQIeHJXY3as8YepqGQ5uwmwHdAeFLuFWLQPyD3NRr4OqVERsI+gQUb0HZAocIW0m5JkJtYNnYIpw+9f9qgCZNPNQeUAHh1hgYF1TiAvPgFJPO8Rg6S4G8S0Sngn22VrFc00GXxLBcWMQtmzExUY3FRg1yIVwuC8Uc48Q3ngEwHy5+IcnBRmOi1uVoGpeMMW+ku6LYTpcvH/MVagzMKFp/I7QNQ1Qw3E018o8fJOl0Aj+TmPgvikPHNTyCFyUj8LOtM/3LIU0N3KVhtuxNPrKBK2+odOQOfFpjpawpU0oGTVQpmZ3zdNKsq9atUilwspKZhtDC5zIwp4iFBbxg/hlUU/pGkhirFuKkMC8cRGUkITQNjIrg3Qdzg/iF5CtacdfChqQe1woQwvlHQYEtd4STEwkZz0N8zTBGuE9ZZ6GTqWf+kjy0eMOFGbE9SjzRdgzf/RLNCXUDeiN1THQ3AzAyD9pG27yBto93hTNyAClFLYLil3tVAoCMHBE05+E2YCt1x62MxOO+HHvkM9GEjwRLHjTBOTdxuiJ3UMw6whb4YOROLxDS97UgyCZlUeBu1sJjFr/nJhfuAPAuHs3NCXaXrrFuwTuBX2niqQrKIJziUKLhNAnIKBM+jQ2gVs00MzAAuR0kMIGqGZNtSt2LPe/TUZh/dONXK8FEoL/5KtAgQSizjwDnAZp+oumr0X7nd8zpGkZ12tWDSISmmpw87aQtJ0H3uFdyxRNrzsCEdLKmmh/OgGTKKOZQFMyMHoHuiNOR6IH6SI99hF/GRzrtIyzARCtA3AqAFTYL0MICKLZfYlJy88Y1V2GNs3fyymXbH6yaHXyuyT5Xb5/DiOHntP80HUODK7wZe2panjFVc/GMKfY5FgWfY1HwORYFn9s1LawoU5Ov/+r2B+CZMCW5efHme7Ai90WZbkXRBH8EMdZYlJoPqTnilfFzcJvk56Ap4uemFz63R/KyW5evrp6d2DP52LuLXq3ZnZp/zhphpjXCftYICTUCPsei4HMsCj7HouBzu1PzeHLRtaecgWXExOTWS5+8OVooiqp8uFX5CFaZRcFstsuaY07i51Aifg4l4udQIv+5luRt710Jz4zEtOSGX9x5IYICltRcm5tHzMAuCz8HNPWZ0YOMHAcaOb5sTXIAqcLPsSj4HIuCz7Eo+ByL0mxFwVYZi4K9s5KaT0+ecN6Sd2pnQ1f45vXvnFlbKMpOa44s+Tlkyc8hy49Q8/rkyecPvVE5G9Pjo3899cJQm6vKh1uVj7AqHzkDaDAJCFjMcrJlubdlOYlZMsMp8dvIHdUPeiBBHMlez4tuXBzBvs+LTlwczkbjxU9xgfUbpIHWT6BYsCeI38k8dkXGfawQqDoLgaqzEKg62AiEBWNEB4MtWS2xIgErIYdOvju29AQqMCBltO6VvPny0zdHCnUW4yo3rPA5FgWfY1HwORYFn9vpsAJ1PIn3Tt5321X0mpiUvPOGpTuwzPOfU3y6Mp0rMcWynGpZ7mlZ7uFJPNFIrA7nSaxO6EmsjulJDC7sSSz9E8iTmCQCz4z2k0XNjA4a/55Hjj0zuoDUKz96Uaud9mG0lq/xXslLT3roj5i8906+tunXr4WGkyOw2OQRxiaPFGZ02T6MLPk5fHw8NUIEnpL8y2nP/R4TxKTkY3+89dnqwufUgofbWDnCyH0kyb2LSYAZxozAJK+mdUdjUlj9ypGZRBY9HaXV6QqUnhIiszr9oDHJeTZZLCCvZN1Yb9SN9UbdQmQGFVhIUIGFRIOwkGiQAr/+5RvrN4Bfx5NXbFm6ITR2wX5Zb1G7iMzIkp9DlvwcsuTnkOV4MqMM/BwIVWCS1y08dwm2xaYl169744PQxLhTMjs2D6bPLMGamSVYs5GZY9AorX7nu7L6ou/K6p++K4upFAjckpgWEFhdftB48TzrXwvEi4sJjFqxxqjV7hB4z+R1W558KEpefMrWDzZWjpuFxjPHXRG4LM8q4sXPP/TrCzHpNSQfvPM3X/3wbixNUiLRFNYHIaq+UXdvI6362kdixCSt58EkrTrToM1v86wzLWDXKs8UHX/+MNJOhRLpZTp/TU4uOfOxm0Is4n+EtBOTvzx39BxM8NOT2zdf+UJIhtxp38XExiwx2zFLzG/MEozZqBs36qqjfTgP1kA06nKGm5iYbjPcx6OgZjgNmYOdYiciNtU6I3nDmWuuBiPU7DYl+fBzv4ETblBVkfRwI+kRJCmruu+HUHZfKwZKymKgpCwGSlrg9e9d8vuXa2ZjKfvQK2++XrsbXAFcl1liPtsF81U/85RV3/OUVX/0lBV/KPTbvbAcKz+1qbfb1IYqsbqoEquLKrG6qNLu9NuW5DVXn3UzeO7eySeuWPhidaG6Yk6HG28vmsx3Rd3imRQU4edAn8LUtuWxP9wO8WxScuiFB18JcaAP47mYSsrx3MlG3Rlh6mrEeeqqX3nq7mJGK2a4YizGcItnclSJ1UWVdoe605KPvbHyXjHc53/7uzdCYr+KFVBXw263ZzRHCkddDOgCwx0bvvREMdz3zrjriYrdoC4mkNAkiYktmCSLZzR1tw+f0XbBdtWfBo37BmwXA8HPaKhViMCo1e6x3WWbtryOGk9PnnXCL+9n5FBXY1E2kMzUJY5kL94lgdHI/BxKVCqn+mXcNe/cejH2kycm73v1wutDXH4nBP6QyUzd7MPZrdhFgapwBgyoKk48aN1pnrHCBZpdUBVWE1UJCWKoyu5QtTl5z8NP/Q3y7j7Jq88Zgx/d/yxVJyffeOK6WwCQsVfygTPeeGx35F03mYHJlpvMyrFc9TtPXfVFT11NHIXJbHJiL5vMPh4FNZlpTBSWa1qovXbnmXf4qawq+eqSDb8OrYXdslz86Qjj7UdKnt4VXd2844jgFq6hpfeU5Lb3nj4HS+9JyZdPffzR0FTm5Oli7gNyeWaLOawcs51udFUv83RVz/N0VW/0dFXvKM9si6cy9fUFZL2sEquLKrG6qFJo6Q8eNZ77heT5+uSZl2zYgqmsAfCji9/dDXUPsxzPepww/WEqnSnJ5cuvv09T2Unrz1kWLB+OtBCSR9h20uHYiJsgtaOKot0y2olRA6l4eROgasVFnSzOJ2Dc46JREQ8n4EPUUOIijgtYlEEVh4tJuJDSsgUXLbiQWnM6LsAnnH/dhZ+NJoRE6BSrrVSsTnCK1eTCZu6KKvpLoFuFPaN2U/TsqNZPJj5JqKipxP6cCqRJH6PrA8CL44ahGS9cOIqwIVNTdS4c074nLubDumWCOp7ARy38vb1WiWbi9w7E3kemy7DpXmyyQ/Vo01GJVn2VpwTciXGqgw8xTjPhQYxTHBoVnA5o3ZenFiwWcDqwFdM/3Gebod+/6LGLrjvljV/ccWvFgvjzVJSMIlM8HGuCOynO25rgZjoVggDcXzHcIS0C4qEZyKb333vTBaef/uDK133CEUs42gTfEZy3NsHFswl93yfGvaFmuPI/eNK95y9aessF91QcawmHLeFIE5xEcd7UBO9euWa6xLi3ohk+KLdv3PTG6l+cdPEUl26dpRtuggMszhub4BkL19UgLe6taoar/voXLzr35nvXXfY1V9BVlm6dq+F61hBdIkiLe2uaAQhxzqqz163ccPu2R30NhyzhKlfDNb6GPjEzbW7dI/Xs6Lk/u+ayC0Zf8TVcaAmHXA1XhGvIxCxFc+u01Nb37778oou3vv6wTzgGUy62lKvisjJVHG6GX/qG9954/q3Lz9z+KZdu1NKNNbpGbBxfxY3NrZNSG5645bIzRv98yx6+DS3daKNrw8bxNRxpbp2YOvnZ099+5vdPrtjPpRu2dCOwhlYTNjL+QXEFNzW37pl66oUdv71p/QVL/+RJus4SDje6NmxUBQuJWZhmABG8dvqrv3zgirOf+KtPuMoSruN+H8nXCC8BK6UlZumbgcj2wEMXrz5v+I9DH3iSDlnCVa6Ka1hFbkL7xCRbM1yH79389IOnXLbjtGeCRrSEQ66OK3wdfWLSuRmGvC9ftXnx1Q+eeNW/+DaMAfsfM+hk0I+sqCn+iJoIt2twcwpmBEwo+GqsFdMBMom1NtsrI3iFre+Is6wRaAC+fvxqc+qKF69f9txdF181zQ8lSzESM6psiokqhVSTU+f/7rabzjv11VVxP4gsxXAMu2psgJjC3BdSkY4xeHVfc9nVj21d//zoBE9/S7cuZtRYjyh32t73adlwMfCXZ9dfddNd161Z6nvKENLVodJ7oHkb8V6tVXUhbk/DzRb6fovMsVZMeiBzrLXBXhkDVg0bLmbUWBOD7z9L6L/akHpr8eV3v3XKvW/u71mZpRhrMGpsaxA1CqmmpE68e+Vbl5x54fX3BEzMkow2GDm2ApvFVcmSsRlQ5dTDb//sxXtvuHTTYz7hsCUcaTCf3U1AlAnRA4ID2hElTl2z+o4Va1Y+tf1vwQhAwkmoNwfmZH7FarsKt/fEzb3QaqLmuoZWGWKtb2idaK8M2SeHG4B5wKZrAAaCbJfdZyem/jT8zMkP/uml0eeDPmxJgKojigD3pgofLyRrSY2t/O3pa69a/vwjAQsCiB4L7ygCeB/L3SdjUzQAAuKWm365/m9Lr93xgE9IfD5Sv94oso1IUr5oTMy2RNFT5z1127LFP1v1x2GfkDh+jah4EygOIQjSqapLREBO/s2EKxCt61shTIHW9a1uTBFFkK1XD0qw9eqBNhCmSFNqw+iW0+9b9P6pX3PfIlQhiVvv2Eg9CLInvu5T7ZXafOWfnl/6yMrLP+P5h6VYVW/0WFPv6OFTsSXqwQZeW7x84X+/uOLZGtfOxEAk6R05VoTJwbRsSZQ7NfbYdSNjl99zxiSXjqiMk1FpwLmgl+wJA3VjH7iN0SM2qeYfq3Psoy5gHzQJEoSZOtCyUmo0p7Y/sfHah0du3fwp34ktBXDjjH3UgRrxEDUmpy45feWTS1ZvPOXzvvdaimHYRqnmDCzKvH0qtgJg+VKv/Gnoz3fcvPKs+wP+bQnXybEQhCdAri8YE7MZ68A/nnj+zy9fd9GJ5/0xmISRcAqqDcEPfaTAQHCbQ3QiSKXGBxqgMZC6gIFwNUHwOzAOthwAO4vo0ZB6/K6btmx88bwlzwbCkCUZq3UcpBYE2SNEkCmpNc8+/vTVj5xwTTCeCejJwtc6DlLrKOKTsSXqwEHOveju4ZV/uf+/dwRikCUcqXUcpDZEESZmU6LoqTvOfHvzFa+9eWcgXRDek/yDVg9hDsINEcJrBByk1nGQ2oCD2CeBYWkcpLaEIhNT571zw4qXXlqyakvAQSwJECWNg5Aik0IUaUl9cMHb599+7XN/LXAQrFRZeEeRZZ4iPhnbohYc5LWR87f99bTz//INz0AsHdA6jYEQqbHAQESQVSh5auTEtfc/cO9Ldx/o+QdXxlwllPAP3MbwCfGPGsc/agL+YV8Ebqfxj5px/GPr5ls3PrX9jms/7/mHpVhX4/hHzTj+Mbb2hYevv2HD1Z/2/MNSrKpx/ANYpOP4Rw34x59vvuH2Sx/467aYJ7ylG3LUWBGmhucfKHdq/a9eO/PE5WuuiXv+AaV3Of6B28X8o9rxj+qAf+AVtluN4x+l1GhObbzw3jtfumjdQ1M9/7AUI9WOf8DOqYR//PHPS3++ZNHmlZ/w/MNSDFc7/lFdhn9Ug3+c88gN2+9/4fxfe05FhEvSvdqxDyItlrKParCPNae9cvLjZ/1205c996AxRRnugdvF3KPacY/qgHvQFkmYjsY9qsdxj6d/d/EVN5514nK/ziD0GglLH1MSllALxczj3jOXnnvF3Ze+/IeAeViS0SrHPKrKMI9qMI837jz1hrfvvuoPmwPxwxKOwH1LlK8qwzxQ8tSvXr/nmpt2rDx7ayB+IGE55oHbxcyjyjGPqoB52CeB7WPMo2oc89j+7IbXnt0yeteb/mMEqSNxHUVWkCLFzGP08cdWvPnKpoe2+SQEpGPhHUWWeYqEmUcVmMfy39w0ds37T658LxA/LCGAk4x7EECplHug6KkzTn7t8h0bbj7vjUD8QMJy7AO3i9lHpWMflQH7sE+OVjr2UTmOfWy67Y1ntiwcXvWa/xjh/EjdSsc/Ksfxj7MXv/WLW5965pHNwQLGkgANyxhIZRkGUgkG8tIpz72weNHZJ94SsG5LOOQosiJMEc9BUPTUnx699pkHn7zwLi8jaZeuDAfB7WIOEkV9SepowEHwChuPWHxsvEqwmGIO8syNz11x2iXrXv6KnwQtBUDSjINEQQ92TJ+qMfXOe9tfP+X5B2/0HJhglSx51LjURtgqK2+fig0RxWr+qd9sH/rlHaOnT/aUt3TAHDQOAuxBVKeQlg0ZxZp82ZbbT140dPktDZ78SFfgINNgBmgcBLeLOUjUcZBo6x6Og0DtzoYjHB4bLoqVJ3wSg6/ukbr+iS1Dq986Z5uXGYmLSMLCuFiEZbQGEtynmpK65MqLzvrL+ieubPAMxFIA4RDaRNQ8AooDeitIxVYAhVJXrHzm7XsXPnfBRM8/LN0IAEpE9wioWQUq+LRsRaEzLn99xYPP3bp+mmcfSGfsow49qAbmsMY+cNvYxx7U2Qu9UKu29RFPDQIJst0iRg3EkGIJC1/dI7X4vdNWPLRjyyszPfewFEOOGisiToviU8VSv7z7vKW/e+3SZ7/omQe8F1ly9/FlpJ9XgTAVWwEUSt34/iVXXHjLbx84yNPd0vUbMeZp2VhIyTZEqVP3nTs8eve2R5ffFnBvYgGKc6Bp2ImspnDNMMaxhzXAD6HjwOmIVjf5wH4Vlz81VU03NDUMFxJ8MHXtknceffnst566z38GdtV48QCj24FOQ+PTTEhduv3Mpx+4+p6bA7UVfQaoHhTVZoZUTwpLwqh1L7+1+c9Xv7X52SdcEotFIZq1jNc4fSt19rrzH7r9yqUXvezeJ8yLSl+HHZVWvDlDwetakc4i1bWi/vsoLF0rcmKogBb8qk98QkEFWlHy6QKMacUX9mYgAfxqSky1kARQxFJFS8PYOPSPNEFHNLIYLj9Jr9pPVshNQBayPbptutrgN4xie9wr8BPpidWZ28n3/L1I/FOFHPKhVPlCquC2/OvsN97+RQRWyN6daUVl6GK5vWUX02P1LDy90eD+IhWykD7ooqvYNOY2iyBIMfhc6WXznqliIK7GitTD1z267NXfvPqX/Xhx1i+WPnnJb39++xxe/OzhTec9+vw9I/Wxas6vTBHBATlVwnePf7ETrmrope09Ioc9vTjykx8d8t22ge6Dv//tf/9hLpvtmpvr+no3D/2z+3PZuZm+WRUH8PJH35j1Xzk99KcBvZBGBj/ID/bnB5OJH2UGBnPpwcFs4scd3X3ZXC6Bh4msniZy6f5ceiDdN5juTLQNJNoSX/ri/u3zB9OhVB3ZXr4zgDf6s5m+wR/m23syHYel55fLul8PE7PT8z9O1j/OzOprG8zn0snEV7+cKHnZf2LAv+RuBG989+DDDubf/n3Zvo50R3dbpm//jmxn2sq0P8qkpwMdbT1tOf3UO3xlIN2BLIJXuttynSDn/n29+/fProN/OP+BagP5dnyrbTBdj+sq99cg/3GgLeCvKXS/GX8T8Bdx6ePuHT6jz3n4Ovx7D/f84Ui84hn3tyeuJ+FvMv6m4K+tva2vM9vX0Nae6ckMzse5J40DGpXHufxNyvOUzbXzhGJ36Dqf68QpP4B3OjpAe54ynXq5oyObt7M97s6kmRUe45DNDwxmOvBjTj6T491cVon5/mCGZekYzOZ4ZIvynG/raWjrbOvHG53IobMzw5c7O+1551HIEKfeDI/5Hh7ntqHheM7wlM5l2/nFrq62DDLu6sqy6F25NpZnFloOR7w2S2WflUvjd3e6Dc8yvfhDikyuP5vDs8wAqYNGx/2e9jyPHdnuLErXk+bznkwaefXwuicNYvb0ZI/GsTfLAvZk+5i4v7sNxxzy5wsDWRwG0/hGz9Ft81GbXnSKPC57247B4MQ5a0fRsxfkRLH62nrmM8e+jm4Sqq8Dn+XlLObTN4tl7JuVQ/Z9mV6Srm+2bvUhE5Kjr08E7csOdivBwNE6Dab7+lC0vsHMnDzfmpdJs0P04a+/jbXrz/ZkZ/GqP92GBP39zLVfXALnXAZ55jq6eVD7ooo8MM/cLOZIquV6WYFcL8ud60VmORSKd3IsPs9p1iyXyzDTXI7047dzg+kudZHcIEYpT0dnc7Mb2gb415/mk4GBNjU+uICOem9gIN+LjAYGu3tRjsHunvQgLgezKMrgYFsHUg+i3ijA4GBmMN/JZ66D511nzHeyX+VnqZOpFfKDInt+EG2XH8z34qW56Zy60NxsR1snbs/Nsmsd3TYb944GEXhEZY9OD2RZnKO78iDW0bPxCK/Nyww0tLe1z8ehozvdg7zxA59ub+tEnu1ts/DXow6NMx7wRfSx9rbe9mwWpz7856kPzdiOlsFfuocv5dS3ccY1ThiKOKBpcJwNGrWjrmjC9jQ+yyNeTaNCSJnuaOPAxZnFbU+nu3DAqOHvWcwy3Y0q85QB7drT6Pe6ZHfHEVmn0Td5THeBeu1s0/Y0CMu8QXCUMT14dBqDpT09P8ssMh3zO1gWkK09A6q1K+OM9bj2DMiEwyCyzFjyHrYdjmgxHFlIUEiV6kFj45hu43MyCPBs5tWTzeo4gCbgWRXsQb/EgRnmB5B7lg2CI3LIYny2Z9Gp27O97Thg8OKQR37ZLLLOcky3g5GwNNkcxypO7K/tZGftWcwj+I4NufbsPPwhP3QtFRKsB3VHn8fXcuikPJKCZAs8po/hRYZ1zGXUC3IZNkIuM6ubyfW5XAa9vz2XBbftyfDHbBI0l+1T4iw/n7MxjvPRfKQ65tvJ49vznaxgHpkjwzxYYw/6Uj7Tg+/ne1DhfA8yz4OP8XFfp5KAwsgMjJ8fyufIb3AiIUiX/ECmTwTPDzBna6j8fB2POaaho60dfTnNMyqPI7LsIHcfwEn30e6YUnt46MWhF4OKp34cmABsj8cOdGacUHocMUPzlGXKvrltzKoPPQqnfveB/syg0vUPkuYdGB/4Q0vy1MnDrCyP/agnTuCaOPInugcO3Txk+vjKAAcLTmSeHegh+APNZvGMvo5jelZWyTWqMILYVDaQcBQz6WAjd6Qx1aL9UI8030/3knt3pPsGSAn8zusuugK+g2lFxYZ8gYJ3t6FRcOztV27d4pk4ZZGwGzUEqXFGu/DE73aznJjLQMLuNHoTjhBReOriQdXt5ujEFI2eyTzZz3BEP8Cxtw/TGGYZTqM4ZZUWPQxMpKM738F5Bec+ZpzPIXVmFumbwUSCeQs/chzUHZnBzDHMmwJGR2YuxlRHD+dWHFEwTKeZLjzoaTuaB/4iL8IRDB5H8FacOBZwFKl6Ml0oY08G4xJHFaYnw5yyeoltgnGOD/eg+/OYR2XAm5hpnmny7FMY8SJYT17tlyUXxJHEyILLQgKiQIdDVxckgg6yAhyQRxaDAjMEzmDVOHIGAKNEr+Zr4EU4gFnyjV6WLdsrYkBE5WSKrNmqPHdijuG5K4OpEWeIHhg++NFn+fcNQJ7iJ/oGcxAycIbAzpYgB8KBtzAZ841+ZpxjjyGXxoEfBN9XPqoS+BHv5VVLzGNs+myeczhOOVILLFHVE8Gz87OYKTvIsHjk+MepCznl2lBYsC7d4AChHIsUubaj8flc2zHIGJ2XL6U5d+KUZh5pNC9ZGgdaLkMygYGhHXLoHqBSLsvf5J04qpRgWmi3XL4jw3rl8hz3uXyGRc3lezW6c2CvfJOMrYM1ykEw4tv5djyFOADpHmfknO835t6Rz2VQUZ4hm6AoeTfC8jmOTWSkoYW+Af7ZkScNNDN1gjF3QirD2MKpHwe2BI5kgp3owhjRnSRHpwa+bqLDdaI/d3Ikd6Yx3SJBmmwbJ8gJvMLob+e7aYrOPKE/64zG1OskJWrcmdZbXeASvOiytzBsOtMSWDvTHDk4Qm7ii72cWnAitcCtSUGK5pSJcOabkulwovSDU3YATYUzBgwXOhip6HoUwrCmQROBnFzcKAnXTTzN5qGfjAln9FAmAS35pUF2vE4M3R60Ks7kHzixS3VmIGKjd+CMNzNkFChApg2tB7mez/EdPkE/6cRAZ3Uys8TEce4jD+nM9KR7Ic91gtHocV8Wsh9/qMPjxMOAifL4YV0aP4yUGbZSZgC0QUNksK7hIMOPfpEQJLKmJSWZz1y1TGZuNqe7x6B/d2a1RMEJ0iU6USdYTifYAg/9kIlw7mWnwspKrZjFxMlUWGXiqAMLksV6kidSWWMLx1nofTixdhhdHBk4H40DR5SteDrBL/luhh9Ex0M75MD+cFBGpDjGBw74JHg0DmCUnXn2GHR+9lPKsp1iezjiLcihXQ2d88G18b00+niOR5QNgj4kSRz7eEDfAAUzuoMccMAvTAs4mKCGc18WUn2aIosGfxolIAnSXHThctashrRkmHRGkkm6px0iU7qHTYD5EGs+lqAnPQvrEJ5FXpyxarIfcyG889UMM+0BFTGA2jBR4ESJDSewLN5NcxpM92Y18aZ7+3vQP3HKcrGDM6qNpQnpjxM6DYcB/iQx4pwlR4T4ysqgj7FufagBc+6bRSaAE8dgug8F092jmH9fD0dYGiutWaBVHyqjE7sG53cwI6oxUAAMRbtAI6X7NE5w2Y/eiM6WnkMZA0e0KmUg/LE0OT0Di1SNIGsin1weq2KM0DYmxwoIuWH9oxKhH5NG+BwFp/QgZnhUjb1ZjzkNY0RC5sKxBz0nPU90mAfuRqrM05oeJ5My8EMkn4f5ksWYp6V9el5aPBLnXAd5TXpeNyQeZtOdgayOM8Yqj7qnG2gRNPE8TIag+Dyt3XASOeZhCGLY4MzxgZP6e3qelmg4kRbz8WA+uCi6TVcbZWScUB8cwO7n44zSYZ2P3oIjeiwE2x4ekGEXFwo4sAfjxGmgC5IG/jp4o2+QHbqL69QucHJSuQvyE/5APxzZX3HKcDHbpbVmFxZ6mL5wmZYiCWcI2WRlXWn0aCYDB8JfJw+8wnqcN9gCXWihzFy9w5HYJUGnC7NkF7gtfkHJoSJkMDr+P3FvGVfV07YNn7uDUpRUCQMx6A4DRQFFQUxURKQbacRAEBNUMDAQG0UEFQsFE0FMxG7FxkCwE95jFv/ruv/P8+F9Pt762+ew915r1qxZM2cc5zGzIYO5+llvQqCFoRxsAEPAamARDmcTINjsRcG0HBwL9hG7oVDmpgdBF3KHc9+x9/Gcxx4UmiwPikCgCcG6CDEUDohgNx/BbhEFu48IbuaiiIFgQRIk9Askdwg3tYIiEhDDQXI1oCOiobeCoChxFWjJIOZGBUWzO8KkYM+QhWUQqIybXizKZC2NxvTlCtQPzcG0F0qoNUgubA6Cq8DVxXlxQRyMEIQ4C7BOMNdLUKJMYhoxHYI/WIsQRrHjmBpkX7IWwZ1lXzMvCRI2G5K5q0HwNfARczuCEvA2IQp2MwhuLjfcmJMehOgfHRzM4vR4FBi6wYjUk1NYwTn3wawNwfBy4RczrYGCi4FQshgKBRxbVnB6LhjxC17saIwpCDbiguFPsDcI6gBQcYMKZSj6EwW7Os7E7aJIYAMgGL3HNSqE3VBwKFObwcxeBIcGM40OrcUGSHAoDE4QexuL+pjhCEYwzQQbmihYFRgGuEoEs3+QkTGYQsER0XAFIOEdQbJbjGD2CzIJAjMjmA2M4OgA+AQ4mT3pYPaIIdjpmC4REX4oAdrgwuwZ4naZfUZvsM6HbzCDCdYKLkqGZLcQyzQcJKsUsTJzA2De2aVg5NlRGHUQCF4g2afR8LLZMfBxmUTr4CziC0xPHJnAtQ5DFZUi6GWfw8VAv+BJB6dEykMQpMZDwrlB0BUEEQmLwgpuuEEnBkDEwO1GvIXAnxXsk1gMMshENoZZ8MXhJCGAeiBmcYewCB8iAqoJBWwiZCKqYTYzBOMxpN0+AghCQA4ZiaGFIgYiCq9YfBiKzsXfOA4C2g0eB45BR4aw+R4CXcseTEj0DGBKIZih8D0AUuKy0RgAEKHMK0XJnlkIC1hCgG6wT/CcQpghAr6F+hmcgRvjTCFGU3sgzQ2rEDhy7E/4XCGcbxWCsCqEjdOQBHieTDLLioJVgJmJSICVDJREgQqAIXAHsAgUkn0Sx6BoeUgKQzzkzBMMZSAYnpAfEzCY8HZD2VnwAlmQw+4cL7gKXMkpMuCdaEQooGA2g0LxzJi/jJLpD4xgZuFQsKGIgkMuUSYw44DIKoQJzrwxMB/9gqLd/YZ+DUxmMpTzZvAHU3koYOtwB6FRzHqwAtOZK6Ohc0PhG7DmRuGpYTBBJccznzc0KozZPBRMh4RGMcQXBfNkITFsuZrggkMyiJwdE8fCLRTtJ7KwkBWc0USJ58KqBZ7JvsX4ZKMPf0RDcCMRBbNSKDhLHwqVJweWzfobHgf0PD4DUgoZH4h2Q+OnyMPaoaowPzZjULAXUJwwDF1mOFFGMRkBHR8WmIThEBY9Ay/M2DDmVIRhcLBBxdyiMIYyQbKHGsZi7zAMBfQMilB0I4pwCLQzHK4GEOFoeTib0xAxEDCOmMJsEIczECAcowMvVnc4M3sQwXC3UeL5h6Of8QKmgdPZLUPAeUCRFCoPj4IRC48KhdoLRz+jqihMgAjoG7xwA5BoDdQgc0ZRpEDgTmASYyCi0A+4C0AW8fCwoSC5N0wZQOKuI1jcxyRGOzsz0Q+CVQ+lBhHHjAkCDO54hBDAOLjLBPoFMYH5Bolnw3xgpr8jAqGzMbjZC4MGkhmuiMBQzouEY4xHGNH+UVQwdAmKOIhohHXsM6Cc7HsOg2MQCmpAiAUB1wKqE2Usc1MwXLkZAkSFE7gkp30iGAbLASwQrOEsyohg7kgEsgN4ApyfCyecmR4Wc0Jw6g1uASdwYDRyRezqgMRxddbfiBFg7VgeBIMGBW4umvUlsAmmqzmcBoKZZs6owGVnpyKGwZcJwZzfDbSFeUcRCVHsdrjwPyIhmc2kiBQ4g3HySJZuwmyJREOgDXBByCiMZERk7BP4DFxsFukXhqcdyZ5wJJQ7LsQ0F17sKix8ZrMCJeBBSM7nRskc80g/5iBHQu+3F2gCJMPFUbRfOpZNHRSxCHbZe8TKEKxxXJ9gynMn4W+mEfAH9y4WbhiK9iOSQyPh7SANhPMxVjBSUeAS0EdsBKDEFVhykuFfyKqwehBy+UFGsEgIBTuA6y0UbEozJ4O7D/gKELHwetvDJEg8ZEjuIJgwCITP7Aum8yFDYBoiYXfYHWPycYMEfjRuC6qXqxPjBO1gMxKive2Iy3HtUEBp7CzYdO5szqowYIJdjE1aiHjuMbDbD02GqYDkJkEk8nbsHAQ+aEU04ACcgrmOF9OSmAOhLBpEydQDivbehUOHW4hmreIwMUhWSWwUC36RjMMIhm5EaMj8q38iRBRcTbBO3Ojg8gORbBRChEIySCoSODn7MoE1CgFAaAwGMpJy3I3hBHbTcHw57B1/sA5hai0SfiJrRgqAjSBWcMM9MgWtjPJjkweBNxMx0GUouCxCFEZKCiTXuPY0tTyK5d2ADYZDoJeioBkQQbDPoU2h+6P+CaqjEC4jjoBF4b5EC9j4x4vLmUUFJiCQikDJLHdUYFIcRDK+Z+q5/clGRbOhHRXNIjoE9BjTrIxmTx+PlM0VFKz1zJAij8jF0Sg5gdkXzEquOnQgOxiNSWCwLq7XPn+jOMiRgazRSNTAp0yB4OwiLh2KkQftAUiOK7nbiJ7BPZfoGYkcfIekB5wPGEtMCQbGsDqjEbXLgdayF3uLZ4UmRAcxA8DCjuhwuD3MD4IHxGqMSAGO7i/H/eGqzO1lOR4MKXR4NAJ57g2eLxwifACY1Q8SQ5t9HcO5ENEx3NPBGGMqC/lxVhHUAVOE7agSJAI0PGyEM6ylLPxgxwDQYnFbdCzDNeRwqTikoH1AIvfOeRco298xVwAFZ/WjWcCITsVJ7Okxjxkv9ldyCiyEPJobXPLoWexeOHcnBvYMTyeGTWcOrItBiIKbRREJAT3HJJ4SJHoDkmtFDPxtJgH9smM5rBRFOBPIKrEC4zOGKbUYTptBcoK7Q5QMsUbB4AeUbDbFMPsW45fCzV3kkFkj8Pxwd1xCGQJuDnsDq4ReYd2OFzxlXAcRM55gDOwbu5dADvXGK4iNGJTsEaJgRo8lcmKYQ8skpnlMCIeexISkYD6i82IQEuHTUH/ubuGusVEWEwokFjKYvQJZLcy7hGB3ymwfS7gwCDYmFO4xYJp4dnfM0YCcNQtd2N6ncBPY5VkOktXOeVYcrIhmc62I4KCxGGbTmMT1YMPYJ9FwvCBwMuOvQMLDYJJ9xaw0CqhWCNTFkP+YaLit3CHIiLMGMwD3nz/iQtl8xB+sHnjCuN1/TGwMGzWsPwGts7vhQvYYlvDmLoGAizWS4fasX2OBN7OvGVbMfcxRQVDGsypioT+4t+2nstEJCaPHvuPuAUg77Ar3lnsyACi5DolFOgiSKRncNIvU2CgCvJXA1RTNoAkUHEyMklMLKKGiua+jg5jE4+aqZpEkayS+bD8MTgRHbWLt4Qg7KEAZgVJCj6HjEhBLtbv8MfBFmcqN4dyImAQ8byYR1MUksGnMHdJ+BwlggLS/5SRMJJuVMchrsp5OQUvhXDDYjh2NElm8SFaCtxCLkkE96AEYHjx3Zn6YmAXBbgkRL9MceArI6USxkn2GAzH38IQhQ6Mh0TguIG5/SNDg0E24bgwEaz5LJsPstOsiRMtoD1w89id3CW5SsyQzqyAJr1lQMe0sFC7TyOIcdvFA5glDcplgwOkstEARyDQmSjb8UTACDQouM4LRwp4bBgtnhFCy4AcFm/Ox4Atw1SJMZ98Fc4M2NpB7pqAl+CUzyc0NlCx857gLsQDK2K0CxuXMBf5gngUKZpGhjNjoRQErx2mmWCgGdmcYqdBwKJh3hIKblSgZ9syQIBYwYRj7I9Rho5mLUvEHc2ZRIGThDo/DNOMaFMdAPjS8/TTwkbhaoTHYpVjwwsrE9u6Dk8Aaw2FTsSGw7eiD0BnsxZLN3CThlDw3UdqT+sDx2fU5k8tMAk5kwxTThr3n+DVcjh9DkPkPbPpwkt0787MhWMOjQTZgkrkamEzM9cRk4YAcbrJAhMOD4bwSTBf2FxceY6ogYmkn4EBynzCHOxYMAXYJFgjHQkXFMncH4Al7MRpLbAJzH+LQALyYbUHBRd9xfogi4thAjYONYV+D+hTFinYZzwS7ThzzdyDYHULnsyORmoJzhzIayCtKNqQgOS80jhkOhm0z9BJ/MesAgYcCybnLcQhj2LsQDBhWMA0Zx2hRrBYA00jyoHkYtlziHH9g8iKtBWAOksWaLMcFJB0FkAzkidiLOfYsZcTOYE8e0TfTwe0UP1Zwcxplu46IYz4ZRDhEMGfj4O6xYY4CrWEjGEMfKpTFvCjwIDhSI9dGOOCBaCFcHTZQ4tCb7XVzARYKRMBxTN/K40K4WAAFgjVIDsRByToDGBIT7GoMcoAnhL5k6DEK7mjm00CirhBuFMUxdIhJ9jHDYCHZl2y6QCZwaRn8wbo/BLqdfcdGRFwIHGHWsBDcNowNG7WwrqiKDe64UASrkGxYc7lC4LRcd7B4AQLzG5K7PoIGpg9QckOBy25DstowryE5bwaWLYEN2DgECHHMdsSFc285bAAFxks4s9eQOCecpf/iwpmuB8SBp4kAHoKBCZCc5ojjLCoka217xIuCHRXN3DQU7APWsRyOHQePF5XBtOFjtBgnRTKMA5IRDOKACOPGolgMA4nLAGNA3zO3Ny6avYe3yq4azWWyUeDoaPhdcfBNIbgegF8ayh2DRjHZThjBH6zvEe4whwYjET3DbATGM8wsJDsfXDIINjIZ1vmPFkPBmgYXEH9z9huSw59QwmuE1YTjzahz7Z9xgxeuF/c3qwshBHcS11OwJqxxMQwWgGSnh7KQETlTTjL3mtOabGjDP2EHcI2D4wHBiF+QDPpEwT1fGFnEYVy7YB4Z34mFZRxTDdEg08soAkJhRVGy3oznNAGCADaT45ndY4laVAjYFtfgNBokqo3n7iyeJVwgWQXs0TNYLBoFN0zjueEC2AYtieeeB9L9jACCknV0PKdAOBgVkj0Cjq2LNCCjCLPZD4+d9QXcXK4OzAqGaAF75xiwKLk2t+OgiOSYTGgPcFAydxUFU6ZxCe3kWZS4OhwVNuxxMuvuBMamgWSYPkruJA6GjoMyxgu+ICSjO8YlMCcIkgWkKJjhRMl6NyGWy4+hZP0HPwYmhfujXfHjj0QEX+AecZk4lFycFZf0j2ZJ4no6iY1imDZ0ZhLz1SHZVZM4tZLEZk4S15dJnEschzgTNacgJYteRJTFuBRxKchVQnKPpP0JMwImVwTjhREErIF1HopwCHjd8Qz0x/Nl6RUk59gHOB0SZJZoFMmhcjxsXBESlbLRy4I9vFggwQit4FqgYH+j7fGsH+NZrBuPsAu1MYQejhH6ChLnhQSyJ85cJe4T9ie7LUhUA33IFEV8CGMVQDKPCAU6KZ7h3UxyyoWNMNZeplyQLOQ+gemLB5rG/c2uFopHB/QAL4aMw/Yx8BUMVNYbnFFHRMvcQZQMq4eEncXJUNTx0egN5szFY9Kx63C0PzZ84eejaCchcsMYguUqUXAqjhvUENALDMLEC74xJFO9GOqsG4GRMP4qStSOYQJrjDuHu8BOhJnjWsa5OCi4NkCVxAPiZaRZdCgXLUKy0JuVDH5DgQEFGRXHRjX+wLU55hAkgwc4Xmi7c8UmFxMYmJhg7Koc9YSFx6x2pLC4GjDgIFg10YjrWMExKTALucPYPcNpYV/Aw2d9BIIQJ9mtsyfM6EHxmFBMx/4zSZFi9GOChcLw8BigxDl6ENxjAcTNHngSRhO+SWJqERLfJ3G9koReS2GjNQW9ioYnBOP6qBkKDfku1M2ugYJjAyPe4N61E1Pahw1kNARHUUfBcIoEJBBYNAJPk/OpUTJqNop4JnAuHhHAcxiaKJQcxgr8CjMpAURV5jImAP9nb2M4NDMhBiEVHlACImNWPRQ2BNMcCcjtoU4kJ/EJUxTtjhfz4DnKOQSjLKPgCBL/VI4rMccn0Q8OWTwrEqCuE5EwCIRkdgyS8eBRoOvAyWcvlntOBJc8FrKdigXaJjub+dqJYBSzrsGwSESD4PAwTIfFmUyXoWRVB2IhAgQDA1kXsGeIkr0B9SECBSY7u1Yo1+eJDOpmzQv1b78aQls2y1mAGA0Jrx1UCCS/2aEA/7gSVphVgLwz7hMld16cHxPoe8j2z9m8SGQEITkjfuNvjijJkb+RaWG8VFYyBjpHfUqEe43qk/4RaHcSKAoQ0HdM3zLB4JAk1l7GyWFjhdO6ECyYRoneg4hhAjUmcQmIJOYfM2MC3czyiijYo+U0NQTrFBSc0kgKnIFXezgMHQ7VEYCS8asxvrmcFzjquDg6P4nLXkGyP9nkhGQ1MU0JwZrGXEkILgJPYvoOgl2fZROSWAAJgTPQl3gxtxUF+4ZdnKEqEAy7QsHdBguzMJtYGIuC+5tV1s5RSIoGdprE4hpIbsYksXwlBK7A7A0HbkKwy3LuESRrDNM3SQhW8SVLjLF74hQZJOtBzoCnMJWWwvorheVdk+Qp0Qnsxb7iHKlZIHb4QSL9ykFrs2B/9MCOZRC0P9bR+Fh1ILa+xw0kZIz8YYyxGZPizuVmtP61lkcbry7/es9e/5wzETfRfsI/H2BlFPN2//X1P38OZVxeuAIzQmMs7OztOSqQvf0wVoxkOcr2o/QYuwiN0GvPEOkBY4jTgx75b7P1mMLSI/qCtmuwtUfW7eV/zm+HavWig/RY/8bphUbptYNp9npkiWN7/OtYqEvWVnxDNB3fsXVH//mOnf0/JxPNxvds7dF/vueoybidfHzO1i+xO40zt2wvzLjCzLa9sGovzLnrdP3XWqdueOngpYsXtpXU00uV95frperNMZQb9jdNNjU1NTM1N7UwtTS1MrU2tTG1NbUzMzUzMzM3szCzNLMyszazMbM1szM3NTczNze3MLc0tzK3NrcxtzW3szC1MLMwt7CwsLSwsrC2sLGwtbCzNLU0szS3tLC0tLSytLa0sbS1tLMytTKzMreysLK0srKytrKxsrWysza1NrM2t7awtrS2sra2trG2tbazMbUxszG3sbCxtLGysbaxsbG1sbM1tTWzNbe1sLW0tbK1trWxtbW1s0MT7XB5O1Rth9Ps8BGWCv7PuNHHqzte7DkQTyASicV8iVgqkXWUd1XQUtRW6qCspCLsIFBV7SRT52kINXlaAm1JF15Xvq66nqCfwAi/QW8qMOOb83bxi/h7hMXSX/zfor/8VkGbrCQ5ZVn2NtOJk5Zlrez6SFllpPvvP8Ymg6b6+D5bkL08J7fowPGK6poLFx+/eNlGwo6qfcwsbewdBriN8FmwHF8eOl5Rc/Fq3YuX+IFBZe5be4dhw91GTAsIXJCzcdOFq3VKHfvgI7eJU6ZO8w0IzM4pwinVF568eNms1HGYW0Bg2oKyypOnbt1pbsnIXLaj8OSp6vNX6+4/cF134krN1Tq30R4Tvaf5Llm+4sCRo6fO1Jy/01FdY8rUb99b29IiZz5+oqwbFd21m++cuaX75lVUqmvo6A53Ge0xafLUaXPnHa6+eethc8vX2LgV8QlrDYxNdu07eup83Z0nGwbnrTNdoXv95tW20R6Tp0ikKh16mzR9jIq2GTBoyLCVOWODE2ovXKu/e+91axvp+XZPfyJMd5Z2EYo7zt+rnFYs0pXN7yLQkvKEJkJLoUTAk4glHeWeKqqS8RKBsKtcJpAKJAK+QMB+olagIOYpq4lGS7pIJkr4YnUlT+FQgZGAJ+woVlG0F3br5asXKQzrlVYrSt8v0Ban/xV4S9RlmrLOip0Vw8RysbbYW9JPNFzeX6go5AnMFPoLtcUKgrS9+MrEbJQgbYfUUaAicJTYSvuJ0ts6akpNOhoJ9FX0VdKyhOl5Wgpqi1eLTEQOEr6ypiztZPd4xbTb2oqitDZR2hPFT5sENrL5UzunlUvTLonkmg4CudhWOlyqKI5X0BFMFnrL0jI0u8rVZe7CtKXi4h2KGkKzrcL59w0kiiJRWmGH+V8lPL2+YnybLUw7KegiUFEiMY+Hm+OLJBK+VCrjy0UKfGVhB15HvqqoU8fOPDW+Bl9Lqauom7QnL0wYzt8nqOTX8ev5NxVvyW7z7/Dv856KGvivhW/4TXrNwh98DFSeYm+HgaM9VhQUbE5dtmrttrLjCw+IJTLrAQMnfL5WL+ysaW0zYeK8PaX7Tlg9VV20ZHnBf0ciG4ijPQICpx452qWrRCpX6KxhbWe/u+juPZnNypzdErnDwKDQFbnRvqeaPk6e8eVP24aNxia9Dcdv2rJ1+45du0uOV54TKyiqdbMfNGxM4a7LV7ZItLS79xo46PX7j23VNUK9Hr0MDC1s7V1HuHuOHT+BDbrp/oFB4XHJc+Yt3bFn3/7T10r3RUWvmtY9VSQQGgmCBDwT47T0bgIzla7CnjIdUT+Rs1C5b9oecU9hT6Gh1FJh9ND5NjJ1uVTTYZidwF8qM1UX6Qu6iHiDbYUjRSZCuUQmGazXW6gosxbYi7QlQkWJp5uNhZKFxFgqn2/gNdpQ2ldd26BrZw3ZaFzAWUlLIhe7SnvLEhQGOfUVO4jk4jFinqiDQJS2bIaOq1SeVjit+zAFuVipk71Ybt1fqJF2zDFgrKKrTD58WBdX6Vglt/mS4fJuAhc3G4GyVC62k8jnW2ulHeWpmCtlbAxKUEg7t9TdX2mByYr6dJetx9LtJH2FU8UG8uFyQ1Gn9P1TAkcK7SQdB7MxkPdDuuB2X9m21/MtjAQdhdL5WUuE4SIlgUzSIXe6iyzeMe2bPE4aozY8bUNnxYkyrbRF810EmUNU1BZ46qY19Eu7ZSTQFvLnD9btaC/iLXia9r2Pu1Au5Gd0dHYfkHbWUcwTjhd1seTPV+4vDFCcIE8rte2m1F8ow7gXp23IuIubVhLEK3pLMItUFIW2uBlDaffR88cpqglEAomsm0BBJJbLxVJo1bRLveQLxEzXCogysJY+RzSdfDptIVUNPV1Fvem6H/tv6dfXVK9/dOHT/vzd0410fk83plY964K26dZ/eQ3WPLm+TU+lBptiZT87E82tdqZdG1w+6+i7N4c1eHhE63tuqtzqSXV+YwLrt46h+/pe9LRhrGmD3/jSZ1snXHvTMEGPoiY289omUgxJyIjH4/Hxn+eqYKrWgRcIJcLHLyf34Ol0maJgL5PxNIU8GeacqJ/AUdpXk6dngxOEUigLiZzfjWfPThdKcYicr83j8+0wOYV8KCeeDl+An5TFexEO4HXmq2Pq4mjULeVJBHK+Ds8B5yriTENUj1rRUTyhhK/A1cqahIvy2fuufDu07z9X6cZz5Ql5qJwn5Y3h8SWK0hk8vkxBPILfBfXxeDbKPFxRpMDrKeMFCXliNIqvxRcKOgiV8KeYp8JDvwu68XXwfzCfJ5Hy+AoyHlQmL4HfnZcoEPJlPLHgAToBrZWwGvlSsZzPM9U1E5rivYhnKFPEHgg4QGCLL3GiwF7K568T4JcyJeyCAn7NYOJV4ef2s3nY4lYcih+f5GHrCE8+rCvarsUX8fL42qpKPAOploKxwBT3xuf35g1Fz/PxW2RSngnPArXy+SLcd1++lNfEuo2HhdsdOnQg1PKMt0ZEAtyl0FAg5O1E/cRfr2AmTOVZq/TBXcoFZqhRwhsg6CniSQfiZyAtZRjNPF8B60gxbwtPIFXjepXHU+cpSwSiKim7EQ3Wo3hO7Cge/x3aJUbZhT9eyj4JY32BbwMFeKAikvH4X/E8MBp4K3E1IU9PbijmnpKYLzBGZ5MEncHzUkdDUMssMS6A/sZIY5fi4T5gN4g3SDiG/W3M1yDcs1AklfIlOsLV2M5baC7lKfPURTwV1NSRq0WEEcsbICRJpISmpzUTpTEHED9BT6bTeTzTmXyZSJUXwNNmfaXQDf2Mn0vklrt/eKUffMJVhSa/CN57+LiAury0etfWpkLsV3r/W2Jx/PZk704XRwnoRJSag+FuHvU5zZu+7bWIKhy3+NfYSajtyLOr1noi8m4pM1i9UUyzHvVN9PQUkFea4LRznYCSUgafz4oTU1tk9abIwXzav0V5RO8uYtqkueLPzlvwaRVP5E/7KKEC97TCNZkS6vZH6Gpezqe3g33S9vwlsrsx0dj1HZ8mVcbz/SREbbUD/BTGoL5fU1fWLpRQ4hnf1WdkQvL4s7WmWEtCC8RlK+dV8ehJ0/iLl8OJBvZb1lfSB10y6oPznskisjKwqBKsFZFhyoh9DpF8KsoLjSpEd50N2mezDJ+/524c9/X/KLsYp7pt+Sah6/vy5NEZPLJNPPnN5Y6E1gXMLZBMEJJl+acuqxIF5FDv1Rh4XUabC0+qnfdXImFiyKXAkyKapz/gfNNDAW0wnd3FCZsVfLjxdaq2P5/mB15JMXmrRD8fdyanrwvOkEJTBR/Oe6xD1teaVYr0rVfV/JlPpHTEfaCCwlcpmbnvyFxlLqKRA7bf+DlbSgNzBt8R2RFti7utYXgcMcGrL70NB/LJUvvs0+sWPJq/os/P6x5CCtkzaxGGBqXcWjVpTYqQtgRvNA1SElHTy5NKRjf5VNO85IhGi5hM85rcd+8X0YvxMy906CamDmGy2nwR+pu3O3v6LEVS3n2sIWCrhAKv/9nxRpdHl/d42JRXSshj1Mcvk01E1CH757rBZiI6MT5hUk4xn5bcvaY0aJWY1gxxr1g4VEhZnjPMIi8JqGZbbHkI7n9jv5aw9G0i0qvYKXWu5NOQcVsevUuWUncnK9UDbXLqv/BrdlOCAulGda6bulpOx2+77KhK59Gnj9YvA/BrimNpnG56Lo+mLk8uaPnJp8MHBr7eNY5Hmel957c8EFBe3qDjGr8wHmzzD+V/E1N25kGlyRjfFQfXviq2F9Kp7aNXX5sqpxmjtMvjJkjo5un6Xsc8ZdTJqc8920Eyqs3ILTzpJ6QD+uZ7NvSX0Kjv8c5JwXzKTCtr3B9AdKG3w9fRzQIye3n91ofbPNp2sJxXGykg02mrbu56SjRH6fLVo4951P+R3uiisUQ/t9Qc+F0koa7+uwuXBosp8ODdxTZvRZQyZP3t213k9OyFlvfrvRK6U2J7o2CkAgWkbRLM1RdT5FwL6Y7HYhKnz1A9M0tEccLngZdcxHShRHenKB8/ib5v2MpTb4R0++kw++edRaTSumyK41gJXeg8N3V8hoik+/X1NBwl9Lhv2tIF2AXj28tzouFPZfQrOK/LtdMiWmY7ZPNijOe7w3uVTu4tJNehC934UyTUzyCmQ4OxiK5M/j2uFD/CeHiP/bX6UwKauom/7vBSHjUumf63ur+ARBtXT/U0ENL1WYqLNcOEdP/yYs3uO4T0ZGw/r0CM+8h5tK37WSl9SHqw8egEBbqi2qrzRkdIc2SSE0V6MoqyfD/3ryWfVp2aZ+7Ak5BS2IcPURi/+z5XbAs8zKfxWt5Lro7lEz+xPj3ZgCh5u3Gc1laiiL7Lj7c4iGnDk5WXV28Wk+ufjUn1ZkLK23I/+ngexvnbuk6Cy2JavyN7QaftMpL10Boy9hKU59/Hj9euEdBj1Xk53XXEpFCXNXzhFQHNP63dfWymkKLko0cOvyAmgVBzwXFfCYmy9W9OdRCS+uFrG00S+XTw0qPfr2t4dOLZ3iqZN/p5oFEeT19Io0o7qN7uKKKoTcprPiaKadKnJU+1y2WUrrmmu5ujmGzMN4661SKnBQ9G5fa6oUyLHus5uy4UEH/+EZ+y23w6HWe49pCnmFZ36v23q1RI6T1bX83TltC42tqd5Rj3yyMHv7w0SEJjvtSZWj7G5jVZe4OPjcM89g4cGREvpH4baiIdUyUU9evswJYPQqp9m3pn8htFupe6vGzbAwk1ejzvtvOCiFw6xgfUDhfRSgPZ+idbMR9uf7mQdRGugcOVC/PCBTTtQZ5lkBafgpVbUupaoF/m9pNfchRSWFLbkyWeRIuX3WhY8IhH3aU1gmFpQjo0b3v/awWKlJG85vBZtCMjaP5y23LokfCj484dUSRR4JildmOVKKHe2v46Au5Il5o4i79C6nutSaePMn6bNta4zthETC+yM9c9nSmhJzrDkq9/hT6IW29xwFRCCaHv9MatFVOd+s5T26UCmtwW0u3DThFlKKu19lVVIjN+RdCFfdBz6Y4Zyed4tKLznyq7ZBn9WDZnyaURQvKO85pU/VREU+/si5tiJ6CYYy927ItFO1QKzDt3F9PfViveEQBMGSM7TescQnS5Kl228AWP1t/p5Psb7+eOc7YxvAD9H/Z48zlPHvXq6CJb80lAdWYXDzX1kVDlqYTD3fPFpPqscqI0R5HWVSRsOVymTCG7H+Y7LuSRTGNyH+UkAXX6q2cz+S6RuHimbhva4/s0JylyKezasS0uI2MkpFGs3Zheyqcr4nVDbmNzord3V6iNTxPT+JJzbed7SahsfV29GvTP4vxCp3F6cho78sqcIa5Cqj6x9E1OvYx0LiXlXl4todPrrnX93o/I9HrE5eJNQioT/bQIlAtpR7nx3o9xuG6m74xxV4Q01nPvWYNzYpomG3l1WqGIjoR/Wjj4HFFmslbImiESqv1zZGIGnI6mgUm2vYOlFOO3OeWUl4R6WDy/X3hITA/r364dflhC17QzG79HSclyxKT0is1wMGf1WjFhlpBySnRki0fxqOfVA5pTOvMpclPQ9lx7Hr2cM/F0V/SH1/plFeKLAlopuFU9H5v2vE+TWKpaCWnfth+P1p5Ff+3qfO+nmohuje/elmMmoY8ndpydip+xvbqs45+JjwR0fqWl3SboU6deuhXG0Oub2nocVXtDNHTcM/VDC/n05mS9besJoqR4Op+7m+jN9hPWPT/A38j5RH/7AvvZ/nh+3EmiVQfKbno1CsjE1NAoEeepTnnuKLOW0tVGr4RRRxTId4FC61MdCb0MvTBdvElM94qGb+lmokAnvhpf7bdcREujs76/yRJTmV/uc4Mm+Dt1CjvlAwSkET2gb3SIhMJme0cWqopoTMLOmA3TidyHOy49DT3WYNdUqzsWenPDUl9TPxGdLM19n50HNG7b7NKSUCmNU+nTo1FHRuE52UucMP5vWg2sLpVL6dbp/a8NL/PpRcTSd9Mx3wuTzmb2EQrp3Y3hqYHWYppd/al0qynRnuv2FPedR4kqZ/oHiIgK//T/4epA1GdoUwdH+GeBg8+eaVTgU2Hc2p53Fwmo7+zch7tPKtFH5cBby0+IqGHwlUHKH6VU3OxnUewJvTmN/2zEC2CGwt55qT/hP70/HWsZIqLZVw8YL17Mo7niYdUBedBzHX5syzDnU32PuT/3JWFeVlRmryknul3yJm8KwLeEmN8H13qIKCg3qI/wk4i+OrmV7lshpUWJ785l+MhomNPFAps6GcVXeOW33oG90DmgXrNPRB+7r3g/AuPL+F4v9YKDAopb7Hlzyg8R+bz5bReyXELhmeU2340EJB7dMiQD/ZzgdGdJ8loBee78LdHS59FislphoCIhF9+0AxnDxHStf8a+Lv3lpH7nZpfT5jJaPmVX1Zf3QlpcUjfsxmkJjf/8MEYPv68e8KJ7fttDCfWyeDr9/ggRbUj8uPzeVD5lbRREvES/L7VIzhqpi3nRr1L9T38x7bmXpvp1No8mF+lNK60Q0Ps9M1wSlPg07KjD+egqCdWPjMs7Xygk5TUHl/ZE/54fuPPCODNl+uAY/aKlXE5Dvx6zOtAqpNJVJbn1sG/fr6gWGo8WUnGG2vovMWI6tHLR/aXLBOTzc8yT/BFE5Wtv/fa/J6IRL/eGbDTi0/pq68XLi4S09V3/g6VuRGYpfxIU5kjJLeH4C/doHrmdHHT6xV4R5av1PaM8V05BKmM1mtZIaG7rQ3/HOWJq0q4taYa/GDgz3b15gIiaTQ9ZTGnl04xsxWlBXUU0/8R7L/kU+NMv/qwRPxTRHGFCteExAb1caDDmswOfxj10O6V1RUwLq/YF6vvBfxfM2K6twaM9u/V2GwfISWWQWWrFZxk97xNv3wV6cHu+htdKOPzX9jWvCjxDZBg/NeVcIPMHfcYM7ornrXBogAr0ztaJq248h148smv1dYtiAR384H085ZyQos1HaSpVCcnx4+ULuR2gj7uJ4vfeFVDJtaFfj8hltOK+yt7P15To+cu4Xt0+imhWp6NT7DUUKSsnQDDIiyh1qX/k10Vi6nRtae5aCZ8sPHaKFtwQ0UT+gP1qb4mW6v9sNosS0Q9+w2JffxGV7wy9V32JT7Msl134bSGi5zs6T5jwR0TL161MetUA/eH2YsOy5zIaO0Fy6LermGKvDL7bki2nwJuyeHd99NOsyHNKE+HXPcvpshl+VPGQQZpHrIW0br7Hnr2eIhp3rvO5jr3FFKMRKI6H3Q88u/CTc72Q5uc2NS+O55Fi4tQHEQU8Kn8fN7gI8cWP60M/+1+VUra1zpzd8OsaC3iVH4ZJ6do1ww8b8pRJ22N1pqRESC821qrKTsFuZn2+WAJ72//qwbVnpvEplefRNj5RQn4rOk+9sgcb4GWYVVli3B24JjR6BT+WFxxrsQ3+TGiekXBDAX7tZWW3S837BPTJsvqLwlAxOcd6vqgK4FNM7natze6YX5Xrvy+An7L+hPn3n5flNG2wnv2782in6b09h//C/8hyeDVxl5Am9MzLXb2cT9fdo9+87sCjF18FtwtgH38s5QnVdUSk2X3EwybojWsLVi0r6iKiVWsV5o6fSrRf+eyS/RUYpwUKv52eiCm6YdGHRR2UyHTX5qkP+DKarrmguXUJn6LnXtA1u8oj3QeHBw3ii2ndnzcJeYckNMzzVElMiYDWtSafGdcgplMbbrda+/Po/c8+x4KahbRqSkRBW6OQjpeNrFySxaOLa/oGnNonpmO7O/2M8VSiin57C/wCJeQd/6WXV7ECuUwp7vwhAsF5+QdHWX8Znbn+dYbiY6LDHnF1vLVC+tbsn151GP575OGvA2cISbCmS+bIB9iPTqtcumoe/DzdGVN7dBZS4mTtL7668JeP7YkLRhxtFZSfstteQAURan8WI/4Lad4xyslfQG+XHrkXBr9jaKl6p5k3hDQpu6viFVU5fZoqPaHzVUINX58H/+rPo7Cbz1sU03i0u9nXz2aoiPSXF3yqsUDceV5zXodbQpqmvfOGxwjo6wpX4ZUvQtJRG5p5Y6aYOmvlJCc94NER7ZhHoS4yCjpyqMUuA+Pk+dKR+sVCat2/5aPcV071Glt29y+VUPTZ8Nl2XgI6mdp9yyyM52W+b89kvYKf0W2W/cBWMfWNuj7rnraAZhzTk31AcuzvkbEOzxfxyL/zrJV9Jokod9dT109OYuoeZF+t+4FHRkayroVDxDSvvuNrGy0F0ne68mHkQ0V6PGCZ4uYJcto6a2fAbQH87E9LRi1v5FFe6x/10g6wQwpXYztq8Cnd+tSHnDEiOr3sk3W/AyKyUStayfy+od4n/7z6KSaVt6/emtjzSazLW5M1U0i6G6aFiEMF1C35rofjSSEtWfonbOYQOSU6nnrxJUJG08y/r/qKuH5KmrDu4XgBuRaElt9VQvuzV7yzHy4hi9M5UZnTYS+eLqd+dUQjXaS9O+K6DxIcL41aJ6Kkn3UXW98KKfXe3EniIB5NOTc5/26ZhF5M7p46aYGIquYWBqmcEZF8yQ/z2PUiyizpZLywVk6nGtt2DeuL/ls38njvaVIqnGjS4r9dQLE1czKTggQ07I7noyiemMYJFXd8SJJQxznlK3Kg90YtnKwzp1BMT893GFIN/OXI8bWDireIKMFl8X4r+D87A0YN+fxDQvsWupZJXPnk71Hpu/iuAh3sMX7gGjUeDbiuWXQH9lDZbMul8a9hr0an9LTuI6b7fvU6Oh+IqqLLVT4vJwpWaJs7foaArMzzRbsuIodmqp3oBbzBt9OVx9cB2YXZrg8KzIFdEc/qMVOTRwdjmvpGwN+pOnZZ//NHBdrY8XvfHfCb/j4LMZ6cJaJF30xMm+4JyG3HVBWfrWL6dXSTN3874pKHzj9EGEf5N45bieHfz+vzR6nNlk8ux53SnlRI6NbuU7KWBhGd6Vhg64w4t3hVjL8+9FqXK/l5c+DHXLEaHKk3VUS9Eh+vLPklIWe/rnYL4V8O3yw1Du4D3KL0w+VFqsoU09TdLvwKxssA53Lv+fCHjDe/vwccKbJO3pwKf1Y8XX61/1TEUfFXlv1J5tP5dxa3V8POSh5//zK8TkRuzgv2eVoivvDQ/NUH/u7i4hwvvxDYp3fut8bYwr95GVFyyltEuxYf2vdiiYCyilZO+DUEOImtlclALxFd/7hzXL6MR5ZNnz7LER9rd74z6CPi+CXnvRWbGsU0esnOoAfw7x7fvJYahXjYd6zj3EMRIlq7YMBNU33oo4H1s5wvS2i/9/hvWYYAKRffa+5zRE4t+lcb9syW07vznz6+M5bR9nO9v5s0SqnHMN/aGOirjYZ58upaEXl9c+nl6SOh0l/+O3veB9zon/LOWi6ggKLxh3mDMB8TbV/uRH+6Zmv19wOu4l6YNuzKOOijQ3VuBXuENKNYfZy6jZAWlvx99Bvj376y5epa9Fer+MjceIGYLmcpVh5+IKWZx1oyG6OFtGHkK2tDbNhp0H/0rlwdxP/3B9/KuSKh7btyzIfo8OjR2diHw98KaNeTZ4szAX+2jn30bssg2IPX+WtuzOTT+5EmEivYEfMvcy7uX0x0OqK1dZyyhBTTy7Z3TeBTQpP97BW3hfSr4yKPv26K9OGrPGb8ecQJe8bNthiG+HjHz8jaOgnZD3ngFzlcSCPeXTv/rZJHDR38xu2/JaG1ovN31tpLqFP0wOm+8E9+Pi+eJlhEFGbZQ6FsAua1/cgJU0uBB3rzBe4lPHLaGDMyewVwrY8eK5dqyEnwNC5tm5kC5WRrORXy5DQlO2bgwldEB06NO9J5PdHRtb2dEut5pBI/cJ2kSkAtS+fr1MGP6+e99ZlDN+jbdxmaE91FtCdqX38zjIuogh2VfVeJ6KmutaIcdnrVtyfSl76KlF42s/kMxsGIwbqd1jyWUUlT/KoeW3iktyxGResV/KePbg36UUKq0zO6SvAXhRkWZy8/45FHqf34u6vBp1DqsdkUcUtSefBe81LEB72d7q54y6Oli98cNgA+cDdV9fj+ndCPHtbrHruL6bVHxJH0Y8o0TXrsaZUmnyKuPRv4fpwynS12zFkrkBJ/SOfLwXky8gzQlby4DXv0YuDbKsQh959/uTJwJwDp63NTzmoi/jz0Mk37HJ9GVm9a/lRFTEe3yKpaysRUWXGpowM2SP6wa9LCiV941LU2KbVyFXCSrCshu4MVyMD6XomWC3DHzpPrR8CP6/F76rcBIwV0o2qD9+F3yjTeZdDRYcBVbHz84iQHeHQzds5bJKLo2aalD38jjhx98VrFVfj3J7ynm96vRjtcT13+uBdx59H1EZNx/eAQvoXmcOAwRYkdS65KqPurUTVSHQUaotg3d+Y+FXq3t6u+62n4i8pTNkbBL7z2wsNGvVxCGS4TQh6gf54ETUq/Yg8+xUV39xUViIObL7w8tZtPdzqfuxNnLKDLgzoKz3SRkJc8fLRWC4++tMSMWTmXR+/sr646f4Coee3V52FfxVR46NvChu18+rjbYF+AjiLNWS9qvW8pI/PzH45ti5fSntw/aysr5RSXq5P1YS3RruJL988CrygZNXfjQ+CsYfUba64sE9PBfa1FvdvE1Mdf128gnsN8o1q7DsDjq6+evrO/nEfX7fkxu4OEtOBZ5JTJ/SRUZbPdcDj0Qvbr6V+CI+AnxIY8frlSEXgT77oVsnev/xbOmuyKfaZfh3yIR7xnMHfNszl4Xgbxz5MIcVVp/mHD1oMY33lK6lu1xbRcdfy81KVCKnxRVr3/uJiMTB6Z6qcL6FDyt2PewPGymwSiqzVImWwcnvhKQ0J96v0dhcCbDlpcU+wD/Ib3cFzMohsyss2wOXz2h5SWGPrnH3iC/MKYAtdemQKymDIr1PU+7N6R2KRPN2E/DO7Vz3qN+G/qg0/dTPn0vNphO7LjlC5IGHQY+N3UJF5M5S/gwb3Oj9O5LKT8Bvvwuw0KyEHu0jDF/C2YpfjC45qUWusaulchTWO03aa7B/yt5f5DE4JOC2neXN0LSxQlNGfdtY0fCvm0ZeydF7NiedQ54erfz8awZwPnfNdII7oU6TpQCfom0SV1Vh7yFru6vL45zYtHQRPqF2UBt+4TKw265SKl4Rc035VNgN9UeCRihy30kenNPf0QZ252u3lGuVRIpvpzD09eIyS/7ScLauE3tJacCiz7wqcFifZ8fU0BrRgWr3FojoR2zTm5beMl5GX2H1fJ5+G6e7VU24DjXBh53Xci4nuz+36WXebxaKFhhGBAuIwsnD7nz36IOLvbO/57kYwuxO19fstARo7Og86lA5fyuiqw3KglpAsHuj6L8BDQguyym/mwC9tOqFeEdBJQUUmnDcdgr88lGMSowl6WnG40zAYe8Nr5VNsBVQmlltzI717Lo4r5J6S5h4iiJUry34hv5p2+3+2GkTId6lHcYzpfkawvXzgwvaecPI3uB8hfKJBTrKHRwYd8Omqwbn9uuZh8vry3m74dOPlc2e2qlYg/dI1TmybyaHPMxU3GwAFby/LaXicLaMiy1eNay4WUnHqnRGWyhH6Pn9oxCfmFIe6ZL/XvSSnYw7rmt5KE3rfklx9zlZKB4dEDLdBj142W5DR8kdJlyjBXw3iZMf7Hl/3wE7r91q96foRHe0+q5/eGf/VEo5i/Efb8g7nTe1XEwUnlRyf07ALcuH7RWJ2zIjK56DarCv3yqKDSeGiZgB7ePT8/b4mUnvAzzV4rySi4ZOVJTdi/LgfUOt6fLqUsc9NOf/0UyNs46+hZ4NRJR3NNbMUSehhg82USX0LfhBvaahBfPyjrqzu1GvH0erXA+Yrw+za82frDGPjP1GeqHd9gnisc2jtpKJ/6p+ZOXgAc+/IYrf53xErks61VpHtCkS7v/njHDvhcjzGTDu+ZIKO5Pc8vXQ+7sf9G9JMSNQlte377nTbsYFEtb2YX5JNCi62KF+E55tzf8kbfT0BXBvpUG0pwn1+C+l4BzqOUOcXBAonLY2F+29uyeXQrqDlCirh/9q0Th9Kmi2mv2fC8GlPE3Z++vmouE1Lahu7ztsGPaOm8cqsv86e1RG81xyDOKdcz+jGcaNiY8xcdRwjgx5zVSrAX0ZuaxWMrQERz+Br7OsoJ77eqboo7RvR8kMHQrpP4VNywunWiIVHcgvktoxcKqVv5NQX73SLaqpW5sEeSApU4aF3/PU5K80dttokzlFHFtzulggg5Hdzgn2cO/IX/ZKa2EgAxHd16x+bFIup2rtd04yMSOj6q6nTJLj5dndN1ksksMVWVGVmJMG97zXrbvNIAeOeAnRGusLvdCtaEjlkGvXA5dOLkWuDu8wKPN44ATv9r44Mt0Hd9FapfKt+XUn1lT/77iYqkpOnzZBzieN1tWfab2ojGad6cc86OTzu01xSvWiAgHZuVlZ1BQFu60mBFK+zvgOjJu8KQZ7ncNPmNQyf4MRsrqx/1BA7zx7I6FjhN3pr4pzRUgRYuXJemGKtIeQ9n5xj04NOl8b/d5Moi0poXpaC4BHGZ0ZTtjmXIF/W0WddrooSsDd+r7p6COPTcRq30zRJSPrIu+wnmwzmfO3+PDuZR7twbfF9sgK98ebm66nU+fdOcuVdtPOzKEp3Q0IlCKhlaOOXhADHpB0f2sAG++TtOf0higYz6Su3vDHNUphpReIzKez49MJpiKXouoPywOJ+0E8gr7tL5mjkReYrvpR15Z8R0hmfSI16BR3e9V0xfrc6nRZtXbD3/XUDlNr3OjrHlkZrNFMPasQL6sr3Xpl+3RXSxcHtZ62RFWnD4Mu/kZ6JDB9cfiQVupfA70ECwXIE2zV7s9CsecXlE1ItMJwk9cL3o8qIX8O9dRZrrv4jo1+9fpxxPIA5P+C58Dfv0S2fJ4/vw+3tp/X44DPqhrtHReZytiDqf2audsh4428VRE5WhN2Uje6weFCUmiW760BDE2Ys+6Od5dZSQ2931O7fZS+mBY/6v6cfl5DjGcost4pX3J+Psn7wRUdq6QetygVfUpHWduBrxaZdJ/fy/AL+7EHBDv6sb9PMhZ7cdiHeaQjR8YkHAfPp+8azi1zzyHXluvatIgh/QBQb2Dz8Rt/F/vAdszH2WPL0D9f7nc6S8CXA2AfInpyi9wABzKyszu5iQ/9mcXw80aj22EF+PbRKhlxCjhy38cZQelv0HgtEKeirbIBWrOg6h3sGsHmwmnhKnx7Ze0JsRqAfesx5bcPgPD9ZeTw8re/9DigVJ9P/3X389Y/qDejm+qV8Hjm9qiPLf711R8v/1fgRKRl6YwDjqbMMgMNT12J5+3B8gbuthdwQ0iS15DA0MoAU4nvXHf1vM/WABx7dtbyW+c1/NdvPH+MGx7DcDTqBkXNmhbAvkeD0Q8/Xaf45AD3zpED22N5QRCL96oPXTGxzLOKL/HMs2F23/tQS9YWznRzB7uTXn1HlGB44/6xmL7b3ZYsKh7f3aTkrm6MVc1/7rPdu4wtcP5/T/Fy8VP3NB7Q339TP+v7jP3Amg5XPfzuDege/PvfPn+iuFq3cI64D/6zrth43l7nI424UinvvKk7Xd+b/3hC7mPm7ftpTboMGwj15oHG4b37PdmwIcuO5ybt/wkzv4nzUUvmzDXyKTf7UZqQjwlNv3UOS+/le9ZviOcb7ZceZ4Rcf5clRsi3+db4nX+Pba9bhLgbmc5d+B+z0Hj7H//Yh24DP2+w9sFfdYtqIUVOr2Fd3/oWG3b/6GpQt62AgFK3LZPbHH+c+2UiBfB8TFB4Dfb6+HNSTYZ4DNEywV+qcaxqH/z/dR0f/6UK99waAeNizCWkw8GgzQSIydKKxQjrLXw466WL5ljIq8uFMmYAUvG5txemzZCttzEGPo3yewPU6M28/6P47ycvZyGu1sj/ay1XLc2tn2eYAVKCDq/88B/7T+n/1VMH+xYirOXm+o53jUh3VSemxzoogUr/gIl8Co9kahmVg+8c+Z6L72T4eC/M4NpP/j6/88DXSGvX1o9D+8eTy4qGh7vQBGe0ej2hd546dG2rdVSAzUA1U9Acta2TIm7oJsTRg0Elua9p8n8d87ab97joPDAxeJN33sOC+PIcMSzYxNjc1HBWLPvyg99gYVGcUFxvzzsx5k9a9xY/1/vbf557NDgR3IFiVcHUKYRkiJkSMbN1HBuG80m/2cyn/1qBHrKr32vTbRpe0rl7nfVIES+ueHUeL6szfcQlCmjZjW8Ro+1NbUwpzN3f8tPs+dmY6r/rxWpKFlR1qd6viUqD1H3nWShJrNR401Qpx1fdEv/9MrRbT71qEh03fyaGx9gdrlJTwSljrueYz8/d3DHT2a9/ApNz9osjfwdt9ZG3ceRBw7T/rR+yDyL/tED87t/iok0ZBrkt3HROT5ttOUfeBv/G/xiDbL/iw/Br9SWbRrx6kVYuqSt2mNW18h/S0Yrv0S+MEkHfMOjcinn9IMEclFKM3H614Gvtrr14XLTvP5lPFq5he/UXya7Hz+i0UKn2RtiecafyOuGGm8Lnwf0cvk42NUS8B/mN30oRR+81irb5eu/ZT8r/GXzGaqJb1rws8XSVrUtMBrm5AfcT8/SEYRlg/MT08Dzto/rGIi8ig7suakHgHp1qLPa+dfC+BnRvu8HA2cd2Wc8QKfIULSeKF9LgD5xJkj3/KDzYV02HS6jSUMZlrVT1XRR6IFvcZ8KgIP5HZzUc5y+G3/W7yp2QMfCYO8VchqmUh5zB9lUrxclq0YjLy9xdX1d/Pgt3cRJ07LkdI9y9zPH4BjjnPULbaGf3X/66SmFeBL2tze0mltA/wtvU4j+EUC0s7ZduHeVx79+PNrdQr8uursZxd334U/qigrOwB//tz7s9USEFi75Zv4Kz8S0r2d3Q3qr8rp3hAXv8ZsGd04/CC6KB/8CNpw0+YReBRj9riNQ36m2MflWnKDgFTztqq6IF9Z8kVl4VnEs2YDmm8nKoG38EKsr+GMPLPRh31j4JJM9viw8Y+liCy96uwm3xVRwBvVmaGKGCfnJ2Vswfhc3eAqdQZe2u/r7plHXRDv3Ag1Pw7+RJrn1+M/HaT02PfknN7nBJTrfnOfFeLkgQnrB6sjj9rjRTQtEiIOuH3yoh/wcGHQpMuGaNez8yuMGf+xzu/Ere3ID7/6pjPFUx344iTLhXeCMO9MJtdkDlEi3fgfl2dME5HzygN+x8IVyVZvpshSTUb2KZa+xz1kZCk9k795h4Rqui9N7gSe1hS7T1Ej20R0SvJt8nLEAVXvd1YmIO9y83tmqDryJBtey8kOuOesnwEp7sh7DJjys0HDmkfVg3Zf7ePKo53vZ442UZCQY8Cf5Z0NwYuZsl4wMEFKQcHFZb6nlOi21bDKKl8pnV3zKG9BqoDetB267aYmJtv6A0bbkPcp2G8srkOcOOn7y5n5f/n06PE+r1LgUHkvtIJ2bQJ/avz1cWLgPjedpl3XSgePqiYhPjEO/JPAnp0vrQE+sLew712+lDxdKzNahkBviuVdPYADSmRxIu9T4H2U1A/+u55P318KNzwGb8G76+XjTcAR5X1+HNgKHGnFgaoJb38DN53i1NCSLKEvZz7GT/oO3JyvNTh0KZ9GPQwvsukHXmphcJ0+nPj6aSZJesFC6n7b+/NpczF5PdveT1bGpzSDjrN7zVCmW7M3D0jgSWm11ya5QpOEel90f/cbOMsm/4H2ugsk5OtcZfoWedn0Tq930S8BWT4YsNaoB4+yJQqvcycISHdWUueLLny69udN+PgHwOGEv5759kOcpxNdYjBbgV6kdp8pA1/PfaORkkmskOyfjtYbDr4ewgTHRrR71PM/a8/9Bq+2dE74yQTkE15dzVTbLqQ2Uzt+I4yp6u+10UfdwI8rLSwVfuPTux6rVj20EZNLtnBjyV8BfZ8svLkfvBu+TnOH938Q54/ueW4T4sqTLme6pOaKyU661zLTVEqDBwkCrMG7K24NyknqJCRnnVa3QuQFl1z+WGoFXP74p0WuQ9t45Gyk3H3+T6Ixjpq7tFcKqfmHdta4ozxSn289Ngv90TjA9nUAFgaumD1p/2/g5fUGRxeVdxHSxpyg2d7uClSlsv6IJ+xOfPfcTe/wHLQXBsz8gHxBUU3M05m7pXRy+NB45znAbXcH7DySzqfwHgk/0sCj81Qc1u3kbzE9+KOaFfsO+cEllSPXH+bRdLH77tSREiovvdKSDD2o2HJ7vxi8F5+QTxTXJCDNBJ0FLilymvvm/uK4/gr0pkvejRLkeVuUTTI8NaW0+Hf/sNk3JXT09pyCF+P5dLzglr9+FvCdSdRXF/j1hdJL7jqMT5DSJ1ENcfHT283LO1/j0+9Fr7P7It96/Wf8NFETnzpJzb7ZDhaDV31jUh3m0eSEFxvmmEhoxB+VUJ2ZKqSmNMVqW7oSHTyS+abuoZQa39483posp97NlinfcoV003D8/GuPJaQapD3GD/PSWe2xpzF4qQ9uvdtq0iagILtVWbohfLJSX6UvAl7htdB0REu8mFa6Fi3OPwE73GhybVQHIe0Mkz0Qj5ZRj/2vluTry+j+toU3i3Ed3TXTc8sGy+nCR9fJU9Sl1HdIz47TTvFpQumE4M7Ic5u+WbTh3gge/U3bH3gReYevv+T7/Wvhr4Qt2BK/A3GBzrqPO6E3Xp0a6VgK/6N/Rud9llOF4G9vnHMkB/yfw5qbZx6UkfWNjCyzccBH8nKOaiDfNX2jdMH+YYj0BME/Di1BHmjjobSuwDt6Dc+ZM/cW+vlloH7saQF5PNWyPfZSRN93z37Pfyygj7nv7I068Gm4veKt7shPjl6SuWq3MfyOz+NPFYAPemntjgrfzeDdTszXyZohouLub6QHkOfVtu5TusIHfPPUovraEinFA2jVDpPSzbopSztsEKJ/5yzP0hBTgmBmnGUzj9ZNH+HnhvxS4amHC0dMB68lQGP2zXqMb+MwMyns1jDPC8MeHOSTomn2fA/wE+KfbX6zRIa85vu3mct6K9KVZ6mB3uAPRS+aFFpvokImCgaiskY5TYpRWXPMVIXmXTay/wvc0txN9XfRauBHahfTliM4DTV/71jfWULBF6/VD0Sw71U9epEVeFN9jrVkCz/zqMdGDYc7WCiiMGf7y9RX4MFmmI6LR96vb8prNX34sUdNj1UcAx5kYK61zAd+1oSbOitGqwMXF/c4MKdCRGfdywzX1PPps4lpeRDyKmNK/t6rhV/Y22bK1IPAf+S2krRd8GdPzrhYE4z8Tv8zPn17IA+0aH+n093GS+iKw/6OiqH4zb4VtwofDoY9GJosnJiFPPWOOEPPuzzKv/l4rk6AhGZ+db/14T2P9p+d4DXoNJ9GX63zkjQRNf5Wn/8IOOS7NpVOweABTF2TWZ4Ovu5b/yLf6348mrNjbGqCpoT0TVSWNWiJSfj+zIsnv8FDqNCpXXdHROH3Hiwbvh78C62isFcDlEh7o7f2D/Bpcp30T+z+rkBaFqo7RnUDbnru1bmGVXKqa73/ZTjm2/bvj3+tWA07W/n57xXkL3t9aF3RiDyzyM5lg34v8OlUx+SO7CSmD+JD/VbDn3726PSwc4hctt851/0ueGbmzS7nREdEZNf8urmmVUazXfqHVl4FH7dIK2xdkpSUlyVt3fNWTMXV7h9NwCNeMvucnneaiPrn/ZzpAj9y8OnNT07Aj5tflkuEPM+7pW8fJo7g0+Dzp5+UdUfetiHNUuuNhI45Dd1yb5CAKvWWBvvXghexdEyZBHwNXt3anV2HKpKwc9rs+2pSOtRhRfRGRympD17VPdRSShNe2Jl9Rh5TU/NJxIpuAlIf2XlkxA8ebRp4pzxhHfhYu9ruNf+G3b185OIsMfiOmwTS8Hl82vOE0kzAE+5VPWNLLvJUGpMkOW+PQ3/2XLj7Up6AXqd0qv1dJSK+ybReldDXngvXT/i+XZmcZj+9Oa+PjLro9OcfAi+4zNu7eZUpjzRrjE2sTiCP8XbxxuQEomOubzU6Is54FSQx3wR+yy4T+zELkUdV6dKw3h5568iy23XKsL8rshusQhxENHO9/pKtZsAnYxM22Zsg73FubCMBn19iEt3xCfLUi58+TTwLfHNDQJvW2r0y4Hgev4dFi2lb67Em28uwqw9iYgMkPKpVin/bAr7ZE4fymuCOAgrpMNJriC30SqvpphvIx1zb4qQ/FPFUr7Plo1uRn17W7OQ/VBXxhoGR9nM32NkDhfNmdQKOODcpt3S+Mnk+/FF9qjufVmZrbO/rhfzbktGLHgD/tuiy4HeakZjyfvVujhoIHqvF2gLHLeDDvpT1OIm8rq2bX+hYAC6LRNtKXsLu83+Gb67twqMHtVoB8Qh4h3p5qrz2FdLczmtq9dzk5OO+2u+9BHzh0xpPvXpLaFbjtkdHu8vAr3vwTQvxQ5aC4tpC9KtblxfVDfBrnbZHjhkE/VfwevdfQRiP7JTtZ9QbIq6Sbuc5w0+WzR9/7GYU+CCLt3xrgZ+n3yN6arS/kG4o3M5Vw3y9VZ2ZuvmIEr3znKBhNEtGm86cihwIf0n5ZJxtt4ES+iHvcuvbTvBs9yoVTgAPz+D90tQE6NETab5fBqA/C9duzhqULKYrBcm7LPl88ipLnnkEfMr7yv3vb4f+vBHT9fSwleA/dOillnqQh7zd2B4h4BE8/bI3ZDr4HJfjZ/3ZIAG/JUAhMA/zZf3o/L3F4F1dKSsbywcP5civRXen7ODR7DORElfw8nZ33ENpiGfjZdIL77cK6fQJ/8VZ4D+Zeg4fUbdfQEazvpaWY9F4Sa/GJHEJeIDD7gQ7IU+QHjZ96SXk7Y+bJZ38hV8f9bToWDUWfIz5StLWQORXtnbhBd2rFtC3mm8PBsPPr928KQvuDWWFp4zLRF6tF62JOVkuIFlhodGSW2IyG6ElHVCJcdOw2VTJVkxKTeX9He8I6cjp4yXpyIuddH/0qDhKQFp7zWf03gH8fK7zg9gzUpq766io+oeAOgya93PibjH8unkTTv9RJK3R6QWK0CO/FsQs7Y98UUjRbsfvqUIKNjRIzIF9udohzYPh14/V387WgL/19/DhYRvugRe3vqdHcA8RdTLQNPj1g2hdlnBd3AoQitVuehiAj3s1VdZaPEKBzO17Cf44KNKnozmt5zfySX3Eghd+u6Q0rSpWdcZUZcp/9vqBBuKcr6vj0uOGieiR57fCpkDwZs5nx3vqwa9aPDzOaCZ4H6vMrv4AP+blbI3ynsAzrgy2VPoVBz++4KYiFlXSVa1iWmcCnuvfqA2PNstpkKFh0eoa5E1Hvmi6Ar+1amqZxBy8nSxv21Ha4Adc+lEwcCn7beC9z6R7xqHDd60YlAv/0WTSjoI9seCludyOcBrEoyz3C+v3AB9xbsMWDt8w/nhZrqNDJXS7ybXxL/LlJ+J3euhLwdcSXBtboSans7v7pxRoYN4Mrg1rBN/iiH3Fs1U95HRxofvShF0KNLL19kA1xI+D1/0o7dFXQvmh671Ogm+q3qPTx5fgUxz/VaO8FveR6Fm66ltHxOMXV+85hbzJovLE1Sngp6S4DleVQX/Pe/xD7S/0mYLXnaa+o8Dj3HX2eiDaMfitrdeUGDmtdfApi4lQxPPfMU+zUoHmxfpH3sD6kRnTC7/9+AV79ni30ZIKPr16dr75Ju7n94/O3p/NBaR4duFbNdjl3SU97y+OxDq6vkHdxeugzydrVb4D3+a3uLHrXU8hDYov7br2Lubr8TlZVcjn+B9q2HXohoQ+lzx7PHIBeAj+a3uXXBJSgpde4dYjWBcReS2n9xvYc8eii7ED+PRlT0jx0WYRDfM/frPXYzxP3Ttbeq7kkXYH346BvjyS5nUOXgm+5b6dl+rvavFIotd69TfWI61eefZztY8ilaYc1vMapkBLxDr+Z2LwW9Qblf1Ph8sp60qk1pWf4AcYhhuEgZ/v8+RZXOkG2NMDWmV3lYSk9Fhj2G+sc0lIfWM1Lk9EITapYQwnMPd3N5mcIaTpTkN9TWF/SyeM5j3Cur4ti4ZKH2G+pl2eHqy5APl2i7GBE4YyXqe1f4iJlEyHfhs+rrsSKWi57nb0ViANoUFkf/AUV1douK5U5dPXceWPtRB/z7k//elN4BWK3W4rn4Ce3LVhwbQNyNMPKfPWrdgrJkX/sS4fsZ6wyKhvn+Hwt25vyzZdFwc8qGeM3F0Zefk7qdv33cf1lwx8GL5ZkV7ef/+wrZVHVbnjVp+NxTy8OW2oYTbwLMP1Wh5i6LGhX0+qYJ2BY/atjEd7cNybd7O8Me5Oml65Pew87ETyk/FJs/m0fd4qi5AkHo3XdFYfM1hElaIst0zgV57+p1S81JQp9H78qcZj4Jl21JNmtOKXsh/39vseJ6P9oVfGGqjgfhsUNi8Gn1YmGbM6LBr8DXWKdf0koZy6hnodlt/cHnPOGDzYTMUze2wvIIc0M+VDAOx55DTNMwdO4rmqTF85DvxOl7Vqg3q3YL2Twq7xd5ZJSfpq6mL7Aqxfm9xlcSZ+zdnH40ZIAvwm34dz159ZKqCOOk+Xzv7Do9dv4saPgv973e1rheNFEQ11qn6vh+d/JLMk9iXmh8OBMbs0wLO9nHYg5gZ4mNpf6nul2ICvIJ0+YcJo8GhbL937A3788qcOHQ55C+lRX6NBIzeI6N3yilpLjDfZCO+TjsjLPnZPT1rXChxJUanq6XXgbTODQvK+Cmi93ZG5k/YQadXkHj7/HHrbWRSRA76QQ85xeT14fw/q5h++MgwY8wr78U+fi6isTUd4EPgPtUk+C8BP/+B8T2mSAPMpMHfO92xFanQ7+Hwz7q9hnzxzyVsphcYUjzmgrkiZWWUat5FP95s857Xxa/D9Rmm0xRaBJ1YT5+//DPhSWfKKLrfBg7Y+0/jxDtEtecCSrsXgwep+KU33FZHSB43PE0Nh73vH79uWw6M3ysM9hvZTpt83fp2ugX+q4p66KiRDTFMWdejzA+vBhomePnhtIyezzo7VI6E/z96r8FEGzzJvamn+71rwPo82TJ2K+XD5sOeLp8+A7x7iBX8AHmBA2+Y1IC86dkjW4j/geZ5ZKll/HM9VrePG0F9Yt1bl6eDS1ZFPrt2edQt+Dbxmq8v4XwYCurfP9+woZSVavOI86FhS6nZkrN1G+FfHLjsafhkP/sh0rd/Bj4Artu7bKnEB/6tfvnFnrBtL0/zhqnmeaKFjj7v3RoIXM6l1+cQ3YjrsFBM5Besw1OZafr6N9QA+WivW/QFe1xC4faDGN+Bsw0p/3h+mTPYzHvjbIN7+uVju+XOZAl3QnXOm7r2EdDLSJYYXMf7uHJhjAR7X7zW2HyOxjs9l7p77f1fxEF+9sXG8wKdfGdWG2kMFlHJ32X032I+uZ2YN3n0I8XPzu/W/wbet6fHiyGH4UbcetTzx1AF/N2G0eeIA8Iac1oxzBc9gWv8vRX+Bd70bL51QgTjItaTTXFWsG3k/eaXwYI2Izm9cvDw8QUBLzEbkJCLOrD8h2n7giZD66M4XtWG9i/E9R8MZH8TU4PV+qJoP8OCTHaw04YdEzDIdygMfsvjzskMrwP+dteLM6Hfw86b1afPpaC0jwU1d59m2MupsVDLNNkiC9V7iZR5Y7zbDIf1bMvBgadyNJQvBIxaXa1yduUUM/n3eonrwEY8nptc27JNQSEnt/E/dEGf33HFCjPz1h5Y9Bl00BFTvsrTs7lElOm1Z0LnpLPTXnw0zvmIdQZHbH8+3iOt6OlsUdgZvZbf7hLyV4N31supROXoB+JVNf4cOg590vUvbnt7gTUrr4lz/6vPJyV/N3kOPTwE7Agc7Yd5m1H1wUAQPTK8wKmYuxkXPY9Hee7LBJ8lzr/WBv19wdrDpmzlCei0JLHu8REbrXR7+enUT+vbNlnkZWUp0Pn/n1CCsL7intFrtfCCP1nTdau+bjPh3wfM761JFtKDkcvQjtk5z5Z+1mSHgE/kJboZhHH6MTdrtDT9rx0nsq4t16hPD+g/6jvmwwHL2nyisv4m0fm+XvA5+6ry6NbrwSypfVC5PKFWgr/ePlngDb63Y4mt6woNPdVsTLq/DujuLBHn3hizgEmcaOszCet6AU/Vpe8HjONjvUI4bePaxQ9dPmY75OmnD1JnPzcS0IrbuY10j/OirrobqrfCXDsz2McrE/H859aSKEvCD1OfDn23F+s1bbaImbSW6l2QtdD8kJ+21qxs8sM7pUmORXSlw7u8/DQ7XgvffrTE4zQ12VeNCtPOmZCEtPzpaUrxISEOfZ01zuMGj4V3ebXYayKMdr3wm6MbyaUPFpyYvRTF1jCydfbZagYRRa3JWhynQzm6dLhzvKaOp/fQef8e6uMCN2T2TgKe0LPvrULkEfobT9rCB4Ne7lp65vR08ubBJCgaL8Nz+XFatuoC8wZQtZweOhF8wRs2xeRvW0aUW+g3XAA/f9tOSbZXQ69F59ifGAz88urclTxNxVbkk9Wh/8NK/hCYNkIJ3KLlq5GLYT4nGzI4bYwMe31hpfd+BiIOKrUtqHoInc/vErcHPCuHHtP7443FWQuqVrl0vYz1JkdahqBt8IXlt6Zz1DXxOu/qzU3ohnxGmaXbzNfBf9ZJdd43A56O5H8rnYL2GvZfJtabJ4A2tvpazpjPmRcwZ4adYMY0Nm99pYT8FUn4fvdlzNXhhe80u3gXP+tex8rhI4MkHfz5dfwn+mquddc2vpxjHV1xfnPwOu6xyv4NKg5Aa9YqPRSAPdS3irccftHuH1Xm1XA0h6V8JNzxmoUyr8x8cP3hRmX6eeDLXdrSE7qksre40FPFvzxkTdusqUN8PD++8Bl93ecflcb+Qn+nX5Ctn9vWmVvOmGOAJ66+YjrDEes0v3a2Nh0TwqfmwKEwMvkxhmnCF8zMhrWl+8PSKM+Kn9X3NykZin4WpP772VUTecfEn983go6le3Ho4Cvq0/vLHbc7LwM9r3bzver2UqoIfm2uA92+l3ie0CutvPa9/cv08EHZx69ZpSEfQ4oaZb563EtbtzjDfijjbwWqfe89+WBf39Ky7OFxMN05gzxC0zyxzZsoVxI8lRxYlV9eAN+R9R/dTsRKlLByrehN2coxZ75kKaQo0ff4Byw8BWIfQbaPRvlgJTRm9zHnhTegRzexHk67yaZmjZ/Bm6BH+qvCPT4F3b3hlouV+D+s6Qrd193IR0cHyhZuSkS98GPr7RBXyO4Mkfn+2ZCMOs1cMaUlD3u7mH0ef7XL6/uj8lZci8OL2JqctBv/ZNtxs5B7wxsJq+r009MF6xktjBDrK4OnrHog3AX9N8PiOouomAR2YUNbkAxy7fLaBVjb4az9/Hy56CNz22db+U/dX8MhizfIENcSJ94+Gyf0swWf6Wp/0OlBOO+x03L+2SGmYgdeaLs1YD/t404O7WAd9Oe941qJxYqyr+ZZ9frmAuodtP1nqiPUTvqNf1rzDejPlASux2QkpYRW3CXDJra+mikQv0K/mO61G8EW06dP9cSu/Ic5eNkupG9p9qaDMJxZ5ysxo0UZF5FXvtv061Qq+otvXUY0VIxRJz+z5nQrYvfU9TL8mwD5O7Dk64wBbV1yRXKVVinXMt+5NSx0GOygakKyE6wq0j7b9AQ9VR0NNaG0tosBkiczCjE+V+yyHOo/BOtsJNplV+/m0sG/fo5cQr65VbfV0n6ZEilUfOz1CvubDy7SqmtMy2jXj9/NuyD99lubcXoH9D2qLDrw1wbpWhe3HVmyDX7xuc5eLRyMRF2rGuE1CXBm+6bDcA/P2rH+IvxnyNvuHzC18KeeBx6rbXDEL1/d4dWxXGvJLb6X6xogT0xLGqiilyshowYXT/jOwzsFu2Nx0rFeyvzP0gRL0So9DKfan9BRp4/Unq9U6gTfqld3Yu1BAfhMynQYjH7ogY/O1BPhLRtnLppfBLrj0m9I1EHn43h1i/HssBB5eo3X2NtZHP560sG0A8ol1p4varqOfJo6+oT8R69DEirMSTT7DXkWdf1t8C+sbG4QNjV0V6cGZcSfVwL88UXuhn85krD+22f+5Futj1kUURU9EXjx60fPFYdCLddOPXe2B9QQj1ptrLfLhU5TCBIfbx7B+8GZtZ0PwnT/skD87iXzM+2TVhR+yRbTmwtkju6cI6FSm2bKd4P2fqOhxZTz8kR8Zrqe13mPdtNnhtYXwr6dWB31aZQPeo8OFosXIjz3o1WO78kaiabPPzCydDT/bNfOxXRtwjOqPVU0DRfTXmN+4+RfWcc7v1P88cNAfuid0EhC/1rm4Ofgjz/xdRdXNBfn5iddOf7+CdbkfspO7vEa8s1jRYUUM1leuOuh40gL89CHkl5O8TkixPJ95mzYhn1rgwFsFv/7iRTvf8rNE3qM2Fpn6gOeX1zj1tDOPPs6zXKoA/fs93qel433oidbTWnuxTjhy3+sPccjLRv30Gd3Al9PIwwMr+W+hX60WlyUsBt+20X5MFnDCNrUtmtaYvzJLm6EBGJ/7ujt4rsE+CU+eve2ih/uYFdfmNgl59V8Sl8C413w608M978sJPnhg12uPHRSSYWVR2Zsw2Kep6h3SxfDzrs2wcD4gpPJ8r66NwA3qYk/VrHOX0/q7VasDwR92+HVneyesfwvat9zJNkZGs3Sjjpw/inWc9z5mbsU6sh/jO8ys/AV8rtU6eTPygoVGCcO/pIMX4W6udyOVRzXrkjsuwX4dCk5bckfB/9hVnaxyD/Pa8H7lua3oH/PQE6Gu83F9nx05VUexzv2I1V51rN8PkzV2e471cqPM5AeLCpXIRagbfQ3rK93sFX7EYJ+H5A21A0eABz7Hbn7JG+xbERDd9cSkagkNGL72Rk815I+1C5zDJyFP+WHEyrnw15c7dlt4vQH8131bpo5APuBktFPfLtjPYUKEmUJYVyV60OVOwc4EJer2Xlebj/Wdy+dFjem9RoFuD90llwCfz+j46FJAOI+GvjNPHTkI+2NYpe8s1oKfX/Lw1BrggPkbfLSN0C6TIZkKehtglx/N3HMK6+j2JPu+BV2XjNILtqVgPeUTy0NenQ4DjzLoei0V68+21E53uGOJ/N/Q1bvvP1WgxG1lI8f0l5JG39Nuc5djXdubaMs1yEMMt1oRYbqE6Ntik/DNdxHXPL0wyhb8iGFHWpbdR55HFhlWdBv5rVEmTR5uVcj/hi/LXweynavaWj1s6gje70Zr9Qng4UfvXVj8XpEO0J1MqlGgxj9KDQP1pRSp43bH5puc9tTd7xOqjrzkN7PwdOAXc0aEBo8H/6X7ywPfv4C3uW5CZa8G8E9Opn7THr5RSGvt+89Uw/4gSoqTPgZvENOfupiPtqNE9Gx21LX0FgmpJOgvjx2JfBGvS95KfL/dv+jTYPhzJwtV9zYqyOick7nwMvT1+xBeccBy8Geid5ef2ManPqFG4Q6WyDc0Zu0RAl9tHFpVOwLrtpMmzvKoCBfRih6zZ5jmIk94p7+qdgn4BM89o3ZiPeqdvma19Vi3pPymy4EJ2M9hwP7UuZ1nKNKTUwPjtWCfDvUN8f4DP+Z8bdbz4jwppdtlKz7H8/2bPnzeIfhTXR+eL88Bnprx8ufKXfPAU71bX1MDvHeH0c65iy7waInf7oxU5Kt2Kpm57bOA/RB2VZ8P3sGbk5YjGpKwrunOqBMnr4pps/mQF2cGK9DAovo2lx4CelrRv9cS5P9k+1eMNEU/yh12+e1FvrHryZOWn8Q4/92lXYJDyJs7bW6ejvxt8t+1TbuwXqgmqs8oK8Ql59UdCr9iX5fOinUHFbBvyOSai5kHgZdYqV98ug5+YdP4o4d+7pHSJ+fSwznhfKo9MCs7Dfvp7DcdHxy6C+vr1402/F0ho88W/WyXisCfyFHXLEpA3Lw0/NgV2Mfr8+9fcIlDXmzyvXsD94jIL/De+Ubk1fZeFjdPQnzhtrd/RQVw+vfu69PNsd5qzZuXneduQd55R9K5K5MUKO0Fv3XxZQUKe/7l6B6s0xu7fviFrMFS+jnibul3OfDon0rrLqkK6WGfprvZ2G/LZ2LWtyfAQd0+frvug63EOt3IqToOvszLKd/UeBjHF0ZZ6/fvCT0zvTBgylExZZ7m8xyxn96J0nAzbeSBlp35fG9DiZzebrCwVYcdcNjtHegQIyLV26JRm38pUD/xxcdu+yX0J6b8yVzgj4YHkm43hYqAv+1/aCPD/mBvk/MFwEHte+t8yQZfOsPZ2WoWcMn1qdeP/sV6/hf6t7slIv5b4sc3dTQHftSn8vIAmZhGChZMPwk/KjVb/p1XhzxfcM047UNSuj++Yv1I4AguR9Ypaj5H/BTzNDNzg4Ba/Q1ez1YHz2nIg/edwSsvj/n5UB96c1b6gi06c5Cn2W+49fUR2EWfhI4J4LEHiladXZAJu+EUfT8VednUe4/WN4Jvc7B05LOHrlgfIHq/ZuJRPl2IvF+945QCdbMpCKzdI6MN0ZUpP83kdE63yerMUOAln7TWd90KHPK4z1l3C+AbdEjj/hqs41m18Ggj5lnN576XR4J/tPDd9o7ndMV02vjMhnrYxafC8poHiFNyF+0vOpUC/Tzk1ra0DzJKntb3fCt4BEbpfW+OwT5Ab8xuH3l3WEYiF+8DHh9l9EXJ9P4YEA1ju07odxh8j5UvO/Bzsf46c21yQSLWzWq4hsw7D0Li+1T1Ka+mianIs1zrPnDiPgGBgQuhj903RHvbFUvo1JYduU3AXZru7JAPq4Q/rOCQVPhFEevtlRW69BST2qpuHvlKivQl/fnrrWDC1ploLl2JdUjrjh/t1Ac8qqrMquQ68DuKiqc94oMHN+iK6szR2FCu2v7n22DkO8zkky7unQ48/FPNLV/kS4vfn1Wb1xXrlMcY7HyPfX/ehryanmiH+j/lTtgFffAxKGJuQZkCrb9fOakQ68a0O/2SdQUfJ19x0LDHWO8dkhwnaXoC/O7mru/vO4rpW8CJiLng662o1o9o2g/96NP8Vwnrcqe51G2aAD+oYl1876lY37+kyuceFnxSM+32+IR5HBeeZ/p1n5y8F5x2nXwX62mGWK99t1ZCBkfOeTYpiGlwRkSrKA04uNku7d9jwe8XZ7z/JcG6aK+BtdOwL9bfBaKVEzYDN/qTm3vTWUSLF3pZbj4OvNjokMq2BXxqjY651z8Q4+jVo5LUv2JS/2zax8UY+iSx7w2rbwr0lx7vfX9JSlZFb506Oglo9aXPQ3S6Yv14KzW/Rp7WQzo/Lwv74l3v+XBrCOKW3YOr5cmngBuPvXN1LuJR+7izb64Xiejl9weC+yL4P6VH1y/szqML4avKevSF/n4VtvMExuPgpzqi1SA1D87bJ6lYBb376+b7I69lNOT3dLVU2L0jvpctg/sg3/Go1995qYpUZnqjqgf0fWH99OdS7D9nHFv7+Sn8Y5sjmkfuLSQqPvnmfAr4LKqPpJX54DG2xYy9OwDrcfdqGbaKkf/6oJZbLH4A+/DWSu6FffSGnw7XHxyNvO89lY0TtynQsvdzBxvg+St4HB5xH/6fauSRKs9FCjRi+6XKQqw/1o6xEEqwX5jyop+TlmMfmcv0wK/WRkBN1xImXkN92i+7rx4MHmovo6snw4GjdBWY7EpD3v/4511pHQYKSWgxp7/ODKLPzQ/2rwUv4utt83wTRxU6MXds/fI9Yvpiq3khF3Ewv8PFJS+RL8vO8E6/jH1dPq+Z8vkG5kuPoqFnk8GbKOvSc5U58gr2J/Km43ZpZNEQ6Rrk5zXunn/ZMRx5AI9LJ5chLvTpKh8pwvqfS2cykgbA/zlvuOmy0AWK89OBdS/B+yiIjF/XNQr4wb41MQoYj+Md3wSkYd1dw6xtPh+3YV+fTcZP9yK+fdMc2OiNRRkWMrUbAcAL7+q8+bTTi09Kb4I8DRCf7/TLzlEpRJyg8vn7SGfs9+T4oUgJ+JHDghMxZ6A3Jly7ddrzijIdS3kdNv0o1i09Cu9+AvvS/NS1G6sD/l25RpxSFuKPtuhfAS/ei2nL9B2Vg5F3Vsz+LS+C/jRU3VqpjTzm5r2W007Djh08M77lZS8xrTWPjWbxx9WPIt467O9i3TRN3W8W4sKHoxqGwc8csuNkv2LgqQZmvT4N/iSjxaPNCh5XIT+348+OncAr/7xYSOuxPnyMW2eHkVhM8jZsbdISrAP7u9kuSmM57MqqQ9OmvoD/YafzeaEZj4wrnsw7CH9df6DvpqHw60eFzW2djv7rNmPj4o/AzxpviAYZY3+inP2PVPP9pVQ268pKoaYypQ7PS8/5LKC98zVOhiB+WvPUa4zWLPAYzxnnVyOOMApMKWgG/rXQ6FP3F9vFtCwiw2E59sUyLznvm4J9SWp9C2z54J2IExZVtnhDbyo6Ka8Xwq8qbb12B3FNs/m1jFasi+tT//FNtruUlPRfiWcDbwjtPG+FDfI8S66XXvXCviWTZmxYMt1ITqu3xYiOqWF9Wq8iaQNwL9mFsarfPsI/iDFS/ojhce5X3tHt2A9vbf2VmNPA61zcxx5YgXxZ318Z890I+aXHPc55g/+RklQuGbUSfITBP12DkGdYOHDR1p1YB10xTvvcCwn08e2RDgqIn2P3vdsrh77Ozzn+6Cbsy/oJh3Ma70oo4ryjixn2a7ht9spsLdYrPzrze6g+5smWNdum5GNfNbHvyF/DU9DOMZOLq3si/3ZjU7LFBOi/B7af7kMPbHbYdCbihpT8ut+Jcca4KS3SjBmQCR5M7dlRA7Fu7WWDRG071i29s7D6+vwYn6rFu3vfQf56u9rV2vGw/8p95BIP7HfiZHN34YjryOdcvdnmmiikTQUZOWvk4J1ozP98C36H8hnV0HP9se9b6YVuBogvxnRaE7FsgAzri1fM5QH3O/dzbMF42Mu3UYuH88oUaVCfntNG9ZNSRUrFYi0d5C8qDw43wbxxSk2/uvs71ofM1FCfhP0bEsu+ThUhP/Apu97w0ngerVbfmq9UhXyLWXFvZdjdI26zRs+Q8unGyw1pEYj/nUIHnJND/+z0nnDPHfta/DRMOKg0VYUscvv/rcT+WGfvCqw99eW0+ICS7pV3YorvOGfkO8QvUz2ehPhhff/S+miNlFNE8m8eGsHYz+dag4LdT+xbNKDf3Pwx2N9ivnTn9SrouQEWy52duiBvsiRu5JMDEsr6+kOiiX3jXi6zn58L3mXs+OyqdfeB2w4fN/6ejpSMrHx6rlsopp7byg4+/QR/oWv/bWHVWLNV1mL3HvvfiFvOf5VfgN1dEfjpKp7/LE3NvpnAbRJ/bzj8IAY4fm6dgiripUWDZ/pswzrm5vtx575gHbbRfLeWXeB79F4gD+0lUaFfKc2N9siv963xc859BP1717N0slhGP1+eK/gAvpF7yHTxdeQHQlLtYvrlgW//88YkO+COh0fXVy5axaeJSnpPeiHPnDm00f3nHay3fR9zhoAvN9/9LBCBR3S1JWC5FuKSDxerH1o6y0h3dtDmlefllHBYd1MG1jkmVlwEdqtIcw1O5BlgP6jKZO17T8FfVfx0WVW+HjiWgW7DWSfsQ2Cx89fVJ1hr4ZYbVmAtoYCQdZ1+Y3+gvZ2+l/cDvvQx71PyB+xj+bFbUO+YUPiX4x5kiIfw6Nrky2eigRtuCsq5VWuuROYRu0el7JPBzkbebXwqJUk39UMZGE959Zt66mCftxUT9DQvIZ68abp45gHgA6/yQuf/xf5fSz1PnfSHn+DRT1ygivzRX9UpTgYvgS/m9v67BTz1oztjvpUs45HnrRnvWuCPDMr6Ouf5YWVSqllo9xn59Fdvp2aUeyjS9pnLzzxeL6XN/QqPR++U0aQBZwM7YN8ilWUWK1URF+jHGxfMhR5ZclNDbyb2jVoSM2xCIe7n/YVNUz2Bgy7yer7wYzzyL2tOO9/Dfk56/e7YuWN/zUn5KdauwPvSri3zCfuNuGGS1O35UiVS3ZeaNwr7VD50ivd+C17slOUPFz0ETnqs4eDk4cCHXAzf924FH0Ps0fzgFfaPTDTv8idLIKBUf/sLachjdGx4EpWBPIpS/1Qr/kk+/bhZO6npoZhy/bpNMsfz/tvLxXkC9nFcVHtcSq+w3ltztu3UAXLaZfG1xacAeE9zdcvPV3Iysf/muWO7As1RnWHxA37DlwPp++wwP4rnfDI2X4w8ydZttjZ5wIW0uucMw/4WvYfb3TWDPmyhbauvpxLVxD+jk4HQ49ZHWt7A39xgb3evFvnwzBvdivsUYL1w+PmDmcBbvF0/2dSBD/KzdfnZvqlK5OFt3nWHTIm0Wtv6CnyENPpxxMYX2NS4ZbZ5pT/WjT5qCXWfhv2Gbm1NqTnfk0+NvX4WPgQPqTzplX8G4oO63y96/YI+Hz1YlngG9rfjUnN+2xSiF6rVSo+2yEjliu+p1VLwRvMH8dywHvS8lctxla8y0nr6eHbvROAyTy/2iEH8WGPwbr3VZB459hujHwvcvbGn1P4S9MKObYMulwNP9jX16FGJPO5jwZmKtG1Yn+8Tar0bfDjtpV5O+64hnuptsMgJvHijNUc6vXFRoOOOXc8GIF+/O/7KAzfs17UxfpXKbcS3ivKL5aM2yWnTgyUailLg5bt0Ps5GPJSWtilRCev9BYXO7nN8sU568tkBW8SYH2MtLPYhfrSqcPTbANwkcUPD6SdYBxxQXdZPB/yzS14ddtoC/1xy+pHvx3rkE+4fe/f2JOLyvVsUbkyS0orSw29zEc9fH70/vKtQgVbdCgnuBdzeI3WI9wLgkTyJf6It/ICXb0U3k7Hfw1LpQ+1H+chvNEy49xN6rfVMYMmrg1ifX3A0Vob1Pvt83HtkY784t8Hzb1cA3/RsmXfbd4MS9bW69nZdEeKEfTt8L2RIKcqA9+fBL2XEdyrbPgnlFPyhJcQM+z8PHJH8Wgn4eZKwLPkS9vNI1zeO2gb+767cmOos7HOWsv+d6QDYG75Wzc69EwU0vuft6pjDeG6aOgVlKgLK6T37gMpEzIue5Qrji+B39tCWf0Iet2ljjzs9wdOsUk+ocrQEj+Fpt5/VTtBjakf6zwMv6MmiUac3ABc68fLOsjXIM5irLfX/Aj/M1HTntCOIl/ZEPB7cB/tWdRkWbDxFCH/rz8DhEuy3khPVGr4M+4g++XPrgx7yqBUdvghHw58K23Lt9AdnrG8fdXfhuBfK9MXf9pLxaPBmu5l7BI6S0ohfMzKK9RDP3bviMhT96b/At2Qd9HyrwqVlLdj3L/HM74E77yFOPXzikTr2haor3llxqB52YuxO16XXhbReQThlOex9zhK/Tzuw/83Ivjb7chCH5Tm3Gpoqw38J87iYaiAH32TI2Sbsk608sHtnf+xTtMb3gC8fvNfVrTMzwrOxT+S9767OwM/ThiS3BsGumz26cs4TvMHbbTukzlhM+8jyQWk6eD4+tlcv1CGPqTNlx/oKQ+zP8urhi0rsFxatsOlclB9wmlczFvj8lFG1d87GgSXYd3XUloQdG+HXqU1o6i/EvhG9ej6bjLzb85tjD0xD3uRC0cZrn3cLaPk7oVIo8lOnZ46svwJ74LR3o3MK8qservrD8+EXZ4erfQrtIKZ9HRwmGrwjulp0YfBr8MLU9ipP/JaMfZrs8i0+OWMfu4g1R12wTvvaeN1Wc1cFmjHDZ9oQrE+6euyhZSlw3c171bRDZwtJcbBP1FPonQMDf9zrjvUyhYGrbYYhXo16fKelUIx9TSR+5063COnuy98PD2B9Vu9OqfKavWj/uBzpBsSV4hEVnW8+AB77oMVNukqFPl4M2lGNfU82vvMY1xP4xkbeR72x36TYc/N6Vbwui0ek2eWIE8Y4ieqSwaOeHW/c2wz7/NVP3TtiWlfgv0//XjyA57rS3jTsPPaF29jmGDoa+6H+XTjxZn/ofdOqx6mV4CUsuZ48aAXWk3T8cVBmuFqJNp79kWQOPlNwa7XDzw5SOrA3cL4b1ocYy/OlPZFPiRO+rgV9gDr16Fa8AHldhzXfPiicAe6lLxh0zA78uK0dc56DPzbLJEdZFftpDC3dG/DlEo8m+k1sjBsLXu6U2lVfkO8jp8QF18+Bn7BXfKq1FRU6pc/6Ddwm8O9rl+WH4Gd0G1VN8K9DJm/0ngSc+t4tp8qEv9CTPkW6f+7xqeNx5U+974PHoWVqfAy8lx9Thy+bD7ypXNbWbeUQ7CuRUePjjf3u/j+uzgIu6uZp4Hso0oqCLXZ3iy12d3d3oGIndneL3d2K3YWoiNinIuKJ2IqK/X7nfvt75P0/z+e8ZW9zdnZ2dmZ2ZsLdDgEtRuIvNeeOFMeRC6cZPKv1ZeT/HYtXvjMCPbNHpcNHfmHvuKrDqYmlLuNfwXHOnjmN0HMeXxgQ2jWJeh6QZugi7HW9vi5JvZp9OmZKVAlH7G7fTMjiFcx7kaJ9x6W/wD1hvneTJFM51yYcKte1Bu1EL4pwdY/Cv8K+4wN9wY+93RteaYhdxehMJZsEpEIPdmBm4IY+zirLkO0rP+H/r+bsGw6xc5EbN3gzcCl+zHKH7JpZ5CjvxlJF7knL/S3b7I77RvEejzhTwdPhQ8Jin/Qc+hh66L/RrR/2od7zsyxthV/H3bYeMx5iH9nuW8CKCYPxC+BQeleZJugPopP3iXzsooa6Lbx1ivcsPa4cXeB6xUXVrR9xsOelJCrNhRHVhzxEvul5qkhd5GYd3i/Lt5P3k80XDNuTrnUiVW7ihUlT8F/pPmH4yCzYP/V6Gf4yO/6k8259/P4Q9kSXbhc9HLEGPX98047p8JNwcMi+NOVfYKdfO3PTQRXc1IUL6+7cg99J2u5r3nOXeT/YMvvUFdjX97uy6mjRVY5q57as7Z3Q0w0sljzzAvxE9F/iu/kB9t1ewQ1alDzrpFY2XK8iNiZRGZY29xzhp1Rbp/5T7jRDf1TP9jkfflXujm474z5+F6sXLt0qYpmrOjKv/LU/tHM3vnxsMH5kRqRstCTpPPyZVErntY570CdricP++HkZuPjbxOursccc55ah+iP8nhUP3FYZu98RV0LXLKjFfXTe4lQf1/KurPi+ew3YF7veOmcIjbQor0y74k/yvmTOyWueiXincXdy1LA47MOu9C36Zv5bd/VrQ6IhTe4mVRHTSg+9jX+PGy1LDpiEXrTK3eK1qmD302h7+6rrI3gvOODlDP8w/FhdPn+4Buf6gwcb1w9F3nK54HqfitxD+wxeX3o8djlDytWNHNsZv7cva2yeh53+0eXFBu2Re8GcXTtPQwedZnqOmY++NtnjzX1TV3FWE33yz015B/ns65arqx5yVTVOlX/dGb9lL91SH7w330E92/q0R8gt7NeWfeo0nncvYzoPXF0f+/c/Qdbe4d7s7wHr0vdCj7Cz/4fcaZAb//r7wektduWPz92Lmo1h8XGnLvGX7ruqQS6T1/XJnVTdrjppr/UV8pLOxZr23uaiqhe15er60EOtrp52UfsS+MuaERs8Cr36wJU3p3VD7pa1z6Pwq/uQ6x78e+kl/mlCsu58Mu0SdhSJ/p4fgp3Y8bTRFTrCr1XPcKl5VfTXn0b82ZEHu+Cv15MOPI2f197Tc02+6Mx5U+yiLTa/u+qVLyZLel/ujZP9Bi1kP/Ws8HL2DuTEWU5G3HiP3PyUR0MXjl31dPKu7MPxj+U3rnZQZ/QG07ZecqmGc4iq3Qvu641d4/3xdcatD1VqdfL0H8/Cz78J2dvmE3asXmdPjX7wFfvPhaN/Lr3hrtLlTt56YmkX1Wz+w5HzeE/YzMXxxCbO3bd9O0XH78U/VHCyQxewf1lmsQ5eAj/zI9nEj3vxF1LJ+jPfVew3SrQev7KKC/ewwHHNanKfzl9mXfp6M7AX/e42o/hQpd5X3Xft6Cv0qaf2tbtDPIyTRb7VqI8/0Z1Jc9Voj7/52U+HN80KH3775ny/iO74pcnc4udc9NTDnq7LMg77o2pJjv1Nin1MkW3LKvVGTl/q84H6nthBec868akKdiGXB0/dtRc558qex9u+W8M78Kmp23ZHbrjwYp/6I3lv82jujfhu4G2LZRfTecI3/lyz6XjZB7znrVhq6XD04G+OuJcqRhwBlevr0NzYLUzt63Md8001ZGhA8nQfnNS8wHWbPEpgD5Ij6shM5I2hdwOnvOM9VfCI2IN7KV/Z2TdZVuztd0ZWPjYU+NieRl0agB/fTUmH1ZoehTx7lPe01Yy/8Psu/TO2d1P9/25Z4Yk+el7OBi82fIWv7RTUJgx70MWp5u0V/+25xh3xLLUJf+6B4Vsyoge8M+zSxvPQ09jiTreXn4U+hq64lhU6l8ohUTNXEOFn8jVpP8Jvz+uTPOzHJ96PHC57xOeBu7qQIrDJhA4e6nHKZblao+/7HnR97xH0VPUXfVqcFjvhpvV3L/LDLnPptLe/XeGHBzYc0ykF8QVWLimR7Db6wPeDatWuyb139JjYNWG/HFTe8NV9UixxwE96XstA7P2zNat3eQFynumVO4ZMF7ulD9VanyJwx+bdb2YeQJ92/JPfo+q/3ZTvjUPHp0Wwrz6s9ikwxkUF5U6ztBbytR2Xo3vMgG99vqdO0xPwpTNedChiAU+HjGoxeypy0t4VKjql2QP/nN2jciz+XRf9jZupljmojEseDZyP35u2l8p99c7qpA7nKRt3FD7owIZ3RWJruSjnVC29hnEfWNa+dMcR7Osm65pdqY0cb+FmpyaVxvGe5fCnvjboeZOg3d0rIy892iRmzOtoR5UhdctZccgdtjsunlOUe8WKCz6TJoBnTtl8pi95g31HwU9/u3x2UKV3R5XGbF3lPD4t9gvxHK4MGfdyQWHe56S9X6k0/gG8pgQ2KOjF+5BGY54sZXx3501t+wQ7uByv2zQNRl/39M+SmV3DOT/3+uyahl+CeyNtGybi1KP0UfdTl32Q97p4du+LP75+l65lrrse+cqU6Pev1idWAztPWpKiPT5TquXPfgV/nkdKlPVMwr2haObPtcdm431KkwPpKudE7pLDt90n7Oha1woqcIB3jw2XFhqWg/M82+myE2vcS6Jq3buT6j7ym2Ulz15VQegfVtUsMod796Eoz7GT0ZsP8t6eKqYs773r7LrdFb9mfw8MzcxxoAo43ziaaqybCq4wuUWhaehdM4XtXB3upFK+PNSqN2+Wv27rtLggercMwxevesa5Wq5ahs6hKRKp0U4PbTur4Yf5VdD7fPOVGnqiSvGx6HWutd90OI5z40bZwcf3vsZfkGNmx97oG3pljop+iz7RYfNH123gp+v9/W2yf3ZTv/p/zvzthbPqe6bjzdCjbirHiM/ZnmNXf3bohPyB3YhnkdG24ldcIpW9wI/XTicSqbURbQ9VPYIdTZYW+5sQF+B2ilX157K+Dzp75t1/KpHaenVC2SToNd8uPdtuA/4W35fflMSdd16pru07V5T774TAOyPzb3RXf1aPGNsdv5/rGl4JaF/QWS2fUr/TI/SMhXtM3jgwNXqPrfXCQ1mXNCM+/D6OvLl3ualTSuAPtsL3YU/fIkcbeLBU72aH4N8i6j3Ljnyr+aUlAdV4J1Pt+uGbfbA/8s6+N+YW9qzFtuRa5fQLOfzFKe5VZ2LfXDYkaAF0ueDTutGf8Oe3b/Oo5EUnJVVld+dzT+3He4dCp6fv5b1r6djiv9ugR/3SfkHd+YkcVLn6kX/H8d542Z43o5tnt6iDgy+4TsHu+e+WKaOzEsdkWNVzp1NwbgwpvHXwJtbV/0r3PJ14B6NmJy754xf67APHiw3knjC0+catlesgH5i8okH/WHe1dnjMuxYDXNUTj7zDr7pjv7Ddv3B9+MCSw5oWmYP91LICVfadXo1d99Iew7YjZ973fmrzO8Q9WdypUPu5vOOvlqj6qvnIyXOl2xV5Dmc1Gx49qJIWe+SQ7X3XV8HevuvV783nz0qswlZknJ2L+EeWk1vmvMDuzn18Hu+FBVzUktDXVY7xbnF4/OImj3lfOyi8RLpiTy0q6bfav9/Az1XpudTHFXlYg1albi8fBh/YcW7TGsR+qvZxeLMb49CT5vV2x+xYrSjhne37QYva133ZxsLEzRiR0+1Vvqrcg8Ysun8bOXzuzM3ONvvJe5XvzX3SIo9o5JJy+ire7V6rUaDAyRzYJZV9Of7MaEd1LdOgIZ7sp6Iftww6hD18z3kFdhbjXlzMf2Ph7+j5diVdH7ezAXxlpaPrv6E3+9xyS86L+N8ZGlr5Qyv0nTkeD611bh/z6LyvbXcfN9X8on908ymuKl/HTZE3G7urE4/ur44HTp/nzF40F/+KO0Ky3T5LfKdG/XNui+B+79Wk04WdOLR6Omx417XIhyM+LEwWiv3kvOTvc9aAP4tP8WXmHd4dByc+cO/ITd7Vvp++9Bz2PQ1PZHkei36gxPFdlc7nwB43X/S6Z/B9t4tfuBaBP9o/Q1YG90X+1DzpvDaziyVSTdI1GVOUdxRr0t/p1Ha/RQ2ZdyBr9TroR9a4hqZEDv30cNDR5PAfvuVeeQcRH2P5xY3jp2MfuWByjoFz8dfxbnPTBlV3u6qzF3+OLM098mf854nDPNDrTLnQocd2V+U1dHXBJPddVPPVyQ7V5Z6+wNL13C3spsLH9V1V/oxSZz27p7wOvHuPX5V9N3ZorUfP2zYZ/n5P3TdZSkEf1pfpufE29/33v5NOvcQ7jRzvZ9wI5px40i2La+wgV9U/rML7EYFJVMadf84cjXJXx7qkd8vzzk2NLjN+YGf8bO53//a+CX5MGl9MujsrdlTZcxXcVh4+Is3JrO4h+B2+cSfxpBnIWUoU6zXxEPxNveCnp4dyHjRY2/zmYt5fN653p1ajEtibd4s42Rl92pf23/Y9RN6y6egp97tRzOtPu9TncjmqTF/m5pux2kPt64yAEL3f+KfDb+dGX7V51pI4P+wdPPo96tPLKbH6+avQ/oHh0OEi44p0qIc9ZsiDHk1f8PuXKUW6sWE/FrC9mQa/ObDWpJL94DNXjW164QR2h78PNR28ejZy7LP93IZgv3F1pyXjtM7wIRafz/3gj3xWWFed5J3KVUu/XGx/1d5hzvz78Hevo1ZveYfeJriey6Q8V3mfsWHx6bmci08HtfyTET1r7xxpsk3l3V3HVl0CXwehB728cOhn9B+xacveyoAcsUmiNqs778FPQsy0tR+RUxXY+i7oF+9zam8oVG7KdA9V8v7WdZs/c/4MSDWgEfQu3ZUW/b6g3w7xre6bFbvPhq57PmZC35mqf+NESbCbdRtfvl1p5BW/npwqnxn9S7MNzW2zsC/Ln+ZE9+L4NfZ6Ef4kGf5BytcI7pmROCCLP49YGpqfd4LNJuxO/Ap+Y+Hn6ruJT9EyQ4lJDTu54x81xad0xFdxCzowPS32CqsHDLD2yok8rOKs/cWxm1p+xqFylm1KFVx7dPcZ7P0X3Fvc68x6/ChkaLHvGvfm/eN/lHTCL+ymttPD13KunLaErj48B7+UnwvMv3LQQ3l8OjdzHH4A9uwJSfWCOE25nvpWmokf842d25U7geOujM51k/154KTyf+rhfQc9lcutjO6hNuSzMQ/f+hAnwSE85KMr76/adQtbNR//n3XPphnTC3nCxvXH513BPi+ksuPCyLr4hXH7/LsZdj3fp0a8uISerpW1jtezOrxHGVDUv1Ul7HKyD56xoBZ6k7NJfn9Bv/a7SkaHfTvQiya/9+ME/hZKjUtc7izv6fqtzV2uPnxGwXTvumzBn0a99if/1sFudEGNY5tLcD7GrHrl0554NTc93vQ7PJ/4GF0fhs2pjV1mf5dqv96Av9MOLnz31kPNOdEo3dkDxB/wd5vZB/qypWjs5fLQj4xegx+dm2tRz1vMzdTtOfqUbR0cmzeHDkx2n10MPvbk4HTLsyDX8m8518+GU6kPq3fOOYt8/dzs5asj8eM8fG/BrRGFibd1ekXfauDrTg/PlJnx03jtz+JKz7Cn7uoy8u7iXdCRa2psBfyE5qj5/Vlh5EUulfr0Xoy+IPJQfIE/yKNt85NvfI6dxDDLxyZbsBfp0sUlqsIv7h09+h0tCX3c19Kp9xv84btkcXg6FTlOuowLztaHntYlmlPnTs4quP2fkMfZkYMWrR55Bz8UsysvmDeTc73HmSeHUvRzU+uDs5ddgT45yC113CH8fb5u9+zJGehMtYDP3Wy8RxmfK/nFKrcSqRbVUo6Yz/6vV9nPaS72uuUXtDjQH79DAwIetV+JfnDCscnDG73HnrJQm8I/8Z/yOMW9/SmAY1R0g6UByG83PF8yMh74rznglqfnCEdl3d1yVn30VJemFXceO8RJzTzxMu8l3qUEYIjij7yljPeOuUewV7Q8y+xahbiBz/9M81nNu90l9W7UOI6+qlTEpGMv8auw/Vy751WI15JmaYVcbfM6q/oz9z+9it1+2kd34uN4PzLXoe/SqaxHwwL3A3+inz//YMy0bt3ZD3t7uw7Fz33fCtkv25BnDftV3f/5UuJBtexhGcS5/eC507aLyE/L+vaZdZV4J9bQ9jm49qtWK7L6dsMPssf579mWYe9/bOqXnh8y8S7qevq0rtg9Z1+dOWgAeHdqe2iHjMPd4POKJF5J3IUYr0MbSkPfu3um/5KNd4nnHyS+Gcd7wpEr17Z24f1fveHlS0Vyj0ibZ0ybdXeRk2yq3nBLOuKr3T6Xccj8JOpClh47fJFfT3y2M2zLQOK8VH2WuTHxkwJL585bkvcfTZeUuD96iKua67Fv5HX8QgSkHnpzJe9k3Y5NvbK9APF8HrbbGXcEv3nLEud/yHna0ZJmew/sLbb097584jxyljwxiV/zvuzP2gEZYzfxXrJvlbZdWN+ZtyK2xmH3FpK36JZt+KneUfXBhtcRLira+jllMuSR2YeXTOqPfjBb+R0Lsi7g/I1J2vMo63Dxkl8hd7w6Bgwc/HQN77lejkkxbpA3/k+Ds43JxTkw0rtguqhF6Ic8XjyejL/ouPK1in87yz2s55Suj3in/GbO3MRjeK/XZ+Opvvdg3LPmGJ4xNfrFTKMf5uyHPdPRFZfT+2BX0LPRmmqZ1zir8PJnegUT72bRA/c3ffEr4droSKIV2NMPvDb/8S30JjVmHBzfgveSwxr3rFgMv6udXQ4XW4o/iOTdco5OyX0+5OPC+ErE2Zv09afzRuy3PL4F+2aEn0x+JXWHEuPcVOvA4k1isFuYEx3+eAf04EW1TKdiiSf39nrxAhXw//Fnz4OxoYRc/TTg1d5ZyNejBjVKnoH4dDl6nc4Qgf63YQPPX57YG67K3r/YxWTYmRT4Wbo7792Hj7o1MJ57UOLxY/uMQJC7LtnplmdzAbejjXZfmOuqbj8KPz29P3xdt6Frsz5zV+cci2feF4I/6lSrakzAX836EcsKVib+0Pk/V6q3wl5lWL75BQ/gV3dT5Jq19Yh/Ejc2bOp7/PYPeXCxY1b4d2um1CV7Yp99PKLSx0XQ86Zpmie+gN/jBU0yF3jgAF36GBl9GP9TR7o13rWU99u/pnitffTaRZXtfcC9EP57+lZ+/eXiW+xJc288sf4s/gcKHb9cmPv2uZmH0scSv6FT2yddWnB/C/k4tGy7pBbVY87DJnfxbzsj75UKi/E3M8p/y9zc+JkK9Fl4vkNp+M9OXhert0FO/nzcjMf1PFR42kt+ofjdmldvZ+duZdzV/ZNbdm56766yZPm8+8xZD7VuXIMip6FvuVPOWH1rPnK5DtO9fmCvM39T7OM5q/BDbi35YxT+oeY+GvHjBP6BnnUv+boO7+QSZw30WQC/f6No2fKT0J/vuD91YSf4jYk/2yyrOtZFZQnNealofQ+F2UMhvyW8z8ye7q4fcd0qH3uxYzL+fgpuqNpk+1fewSRP1nMi8o3t2b4GlqiL/c+1IS3FD97nUfvme/AufP+nTq+LYR8ZXi/vq4ppsS+Na7hpMfLO8tPKHB2AvDtp2c4rG5eAzk4sGHUiFfxKheDChK9VO/eEHcuLX6rp6W/X/4pdpmurRmsLLvVQae7c2nWP+DEZs0Vli+ddV9SY9v3vNsLOPN5/+XnsUTa03RzYBv1L8uFzrZnxv/LD8mXbdOwba/fpHe7JO+5W+5d4RL51VJ8dW1199Y24Ycsblyhf1Vn5vms9ZsxKN/W6eKEVjfDPNPxm9lqV0F/V8q79puAi7muFA1ucwN9R3TeBx0vwnq9czU7pe0AX89wL9a7O+vraFuxaiN33glrZdqeFXh9qEF5jFXKGr333TqtKXJ0UtQet3g4eBr33brJ5LfqVERnKXU+XVL0YMfVI9ZmO6tPIUztXlHRTtwMKB+x14V765HBpazP8feX6/m0c8qnDmy55/8AufnRYv0cnsWN2vjXi7E784p2rMSVLf87pw21mnxuNfCzb0C+nXxEPrMz0TNn34zdmUI9yGZtin7DedaDTBt7HXZ0YcLnCQBcV8uPOIEfkmIF/s9b/3N5VTU3u3WCR4NuNzYuOc64trZ1oTXveJ6w8MXlpkpzYIzaYfLk+dmQhNTc4bEBelHTj5aG/uEcUrNlmeV7itlzOq5wu887IL3XYoi7EaUj9Pl3ujejzR7ru7zUP/UXXR5cPzfpB/KuteZfZ0iRT6dKli1+82k396Nv18yLkt6WHzihcHn/wHln9O/sBnxxhvWZmZ//n6t0t1Qn0M7l7RN39i51mhS1lPM8hz3dc3TJRzhHoX1stWPaIOC7OBXaVk3vv4GPfGlrwj1El8nfZbw68j8rQ6FDkQ3fVLIL7M3Yh47O8vuXsR9zZ3SuThYLXrza2G3QSPL5UrcW4HbwP6eITHv+B99X5Yp03nkLukarf9IWPuP+e2dQ+fCn3vZ0tO3qO4v1Jr3du4fH4G29v6XaEZxHq6ujRxYr25J3S5lVn3/BeYdqP0Vsacc4d8gjxjwtyVfeXOfd3O4xc0/b3cWL8e7Q93enSW/zXefRq26sc8UXT3PRofAX7oaOLAurs4R6cI+v6ObXRX1dJ3fFe62zIAYZMd/K4hn2fe5MKRbBvd9mUff5x7m8fk7fuFkYc4iRP3fPdQI9q86/z4CnxYiJOV1ta0ZeBnb+Qazdys4oVe/ttxC/8jd2+nXLw3n3D5FkXynTlXhZcItcs/I4Mux+XrQR85Kp3M98m5rv6z/ubIuELPK7516wPfFp067evJve8z0tKDOuEnr9Mu1wd6vE+rV4jj8ATyFNnew0avGuVuwrwvP3iCXZtUY/Gtd+EvdC6/qnnLjvmqFq/eey0jTgGA7zicm4kXnHmI0mS/ELf9zCoxPoPaYgL82ZA9Av8Nbydc/NRPH6grIFhFYrwjq1y6nndN6BfHxuyMf9Ud/wdrFaLxmNXebpI7YPJUdO13eLauxd2RCGVd7Vw5V3zld9Jjqx44aJCT/ePcMa/TMPcBWYsw77ave+lin2x//lZ49jZY9jrz0k05GIJ7vdeQRcHnkTuUyIm1YOa6DsLZju5pwlyB4eOYRmP8z65zJ6NNXYjTzv3oLjbaBzzzii5v/Eu/AfF3Mx6IQz/55sGtsp1kPhH5XdlOLH4oZsaMrjN30a8c9s871rbEtwDU2WMvniJd8Pjt9ve9UDPOu9ZvjSrkG+P6DW2+QP0qv1yrKicrC/vuuZXmFdlEXKXx98v1ebcbrIgKkUt7Hjahfes0PUgepFjOeNieR8b4+G/4Sj2+T9rblcdRmPnmShk8rD5bmrZwsv7t7V2Vt+6fb38iXN2zZ/uDz2xQxhz96B1An49CwxJnfQPeoa5e69lfAJ/NT92X80lxONJO2ru5Krc2860zlO7PPL/iJ2N227hfuzpkXV8VfZxkxTfU9bAXv7SMduF8efQFw/tdGDDLjdVv2zbFC8K8f5jZ+1695O7qMejN910hb+ssvvrztz4yxozr/ncHczj0500KfYR1/fRwWyZI+ELuxVqe7rUSvgQ244x0dDNs1+rv6yGv8Qp1S83SdoSfrdij8TroM+3S3qlLc49t9KUz5nuBrmorekPXrjEO83+Jbe4f8OON6Ol78etxFU6mmi9UwvkqF/H5fz6BP/l5YY5B07uD12+9vhiCPgTt8Y1DPdEyrHd9T+/ryN/fvu1yQzegTfP4V3wGPZCLi5nJznyjsoHm4HM2B9E1wxfkgY/E2Ufhq2bT7wzV8ezl08jtzy1reD1+vWTqgGnZn7aN5Y4L3V+tV6If6jd6dP8To2er1/g0PzDXnCuT6+0JA33zeUBTyblxd/D2S4N7r1FX1/ePV+tS7zbLbjwdKVf2Gm6Fcv0MYZ38f3P1evVn/vErNzzDuVF/hB8q+huF+KERh9sHZwxxk1l3F1u4074rMFdGt9zJG7dsV2Xup9+5qyOjrofPSoc/9AH22XLhT1GqQKbk/bHbrt0TP+wuj3gU9T6HG0518dOyz/iFXL/Zid21BvE+aScew4fzf37sa3446e8b5+2u8TMpsjLij+/u64O56xb4edbcqLHufjz1+4zxG+Y0G1ipnXvXNXEqWNyrZ+MPUnw1msb8Cs25X5Uvsr4OzkxfYnfs8LEad22xaks8tpHyQ9WKY6+r/P0iGITOuD3M25P4rn4TUnRZcVvJ/xVrAwvdfk2/N73pIuHd+bd04ybU2I3DMZuMOjnjqhI4toVi/XNix1Hmj+f82R3451Mpzo1T890VWeuZLrTijjraWo8ubuWfVznyIAKZbBXu9NgWgcv9AaT0s9yTYWceHRfrwFtsZOq+6TU+ke8y6264/SNEyPwb9GrXsVtu8H/NC0PBOFvvn9g5Jf76J1/FXx0vNhk/JssSrFkqTf25lNSleyPn6aMq2433jHcXX18/u3dee6hOVWmc7eJh76tgOunUfhzeDJo0q/TxPE5sOFAoxHIS1vdarzgNvrfiDeq1XP8MU0ZtvR0DuJGNFlbIlVb7NJTrE++cSp2s/6O9e9EIScP6FDxwD30FafHTqv4BP9Ph0t3Opkdu9vNm4Ydmoc9ScrOSSq3Hotct+SyqjPXEdd3QMYnjdm/r+8XjMwH3fDtkOrKVOK13P0Wk34X/vW7xxVpsIr3EVVGxNUKxD9lngb5npclLvTd4in/TGgJXg8otygP+yNlm6aD/IujR3p570afrG7qyfS3db2wi21f6UaVeO6NdyeOGNIO+c310OKVv+CP6+CjGeVrD8dPcb5Z707hb2lA57lt/kzjXUjRGrVr4odjQYEml2pjB5BsctOp6ZEXXunk/fQBdGBg0ZdTl6B/PpPO/cqqUOKQRUzx7oHfjcGB7dN1GIB/xqffv9y+k1TZ7vWc64adxOYhzX29kaO+9yl/qAPnzOgF0wtuGAs93vql52bsF6wR63akxF5x6MND55tg1xM48naxrMhxTu4bOr4b/in+eha2BRIPJaBkzNR4vo9W2bz2NvY64Qvdu97P4KzyJbsXsvcI8o6qgdvqTXFT6dsV2F0KuU3y8uv8bxIv5s38NMfWEc8mskzFn/PR9zWOrRM4Kh367Kr9u60k3lyxZ5vfJsGfWjKnlrmK42dtyJmgapHLsIsa3XdXe+QC7X9H9M0I3x22f3n3FLzHfFm+4/rk7/DXU/fyl3PYDzv3TJs3LXQvxuK/d2ATd9XBVr2wK3b/vqs3Vk+HP5qtFzo1e+yK38XVT94e5L1Lh7Tp1pzm3a3biPj2s5GfPTr4K6f4xzz/vNazY9g1F3610XKX98aNk45I9BN7S5/dQ5K1H++scrlOaRXa1V29c9t75EVN7r1z3w9Zgn+YEk3rFn9OPKFCiWuWOove8kzRykP8wojf1mtK4YNZ4L+Cflaag74r/9ohl3ZCB95V2XT8KHEkVzfJXbAV/q7L3L++Y0I99JjPB52dQ1yf6t+PZGmMX7Y8I7+VyRnhqPbunp71cUXirB0d+60reJS/ku/E8PTYj5T23ZQHf7n9FoalCcqTWNWa4TfRDz3rnd1ZLqfJy/vWpROONdrHe9vLdZ68R4/x5d7+HFbiQb1L77y5JP4Jzr+YOq0I8oNnbdLV6offychTl7tlg1+scMC5UJLSbmrfzRa2z8SZ6tGq/5dvI5OqOXdXj7v7yF0VO9K2WWb86Y7LMrCa0y/2Te98K8PXwt+8eBw6HD/MPx6nd6zHvav+qAuJk/Oer27+5M0uehHv8sj3RI2IO+ecZYXPW+KC7DlXtlhW/NV2XRu3rAp+b3KnrVPBBbuNFImujB17w0VNnPvt5JAX+Ad+65Z2ZKakxGfv+3ZXPOf0yRsVHuB38ObXyGofsINadzNn8cPs//vJbmcqc9SiOm/o2aQSfjdX7D/yuzx+kHuWa9wcwqk6vMsyojH64bGBFa794r5RfvabQU+wsxyUK059jsWOrG6JaY2qeagd18rXDrGiv3h9Osz7tptqke9271/IQU+8XOFcbTJxns6ufTX3uUWNKhUVWZ13y5O3ujbPgB+H3Gl7nM6NPdmWxY3ep0Nf9vrQyc6FPqE/LNw4uCf+CE/+/nllUTHe/c0+bQnnvdaSlyObn4zjHdyR1AuvtEYvMv135rLE003Zq6jzJ6IXTNzQpnXQe1e1q8H7gBXIZU439u4Ugb3Ke5fYxG/4e9Irlesa/srLHftyoQrvaa4HrP7xlXfuT5vfjF6M/+gol0tlu2KXOTzmQd6ztYgD4l46pOUW7sPWTj4z8We98pZ7zobY9d8/WKr+DvjOe95NB8diX7aqyzgHX+y/F2ev/sATP37NA9T2PbwvT78hNncm7OzCOqjYgUMt6kiFOtl3YzcT+uxvi0L467MMdh5cmDh3xYMscS2QF2bflKmgM/6ReqcosXkW9hVJH5RvX4j3gpcv+tdeQfzd7L+Gb9+EHxk1ak3ZQstd1Po9F/Ymxm/q8GN7i05Dn/Fm9Mc1dYDf5Y6Rhcchrwq74tF00kRH4oBdsFbh3XO+4LgkO6vjd2ow0V2xU00xY1CGjNibPC+0sNca9Ou/b2UIq0g88c9Jh1ZoWTmZOpKqaIuz+M2pPfDe75rcxxM985rRIR794d+7+zPz7rXqxaXV6+DfOy7+299n2Cs++9ai5zPuwXe+tC3ujR1uoUOOA2ejr0mScfLqa/AtLxanqXGBeI3RXcvfuM59tW6dttX6ob+qs+FP0ea8Bz+XY9mEffPwW56jaKPbL53Vrh1Hnuc766I2BWUcPmwq99J2tWKXzvdQ9x+0+5aP942zTxV/nR/7scvti4de5f61cVnP77OR4w5ZFbcrC+8Ld7d+EZ22I35KM7f7dLEB+o23qxb2bo78JDLVyy74JfWvl8m6Bznaw32hN7PjX/rs4UHjd7RwVS4DeuRwSoG/hDn1w9KsdVd972x6Vw5/o/nuVRs/2YK/owIhkS/wWxU7s3DaI9hdHyqa3qP2AOyKS44/8Q56f2l2fddbvDuLK9mj5PIrrHPb77HH2d8zKs7ruLcf73S6p5jesqODKvRi6KVyc4jPtG3xgxEdXdU+5xFZRiOHbdXNlmioFf1Adrd1T584q8R/O07cjD+bCjOflAvFD+nfrslq3OHd2/TSi2efRf6e0hZ9Low4ZXkb5wu+gx/2y2PKB8fdRt168VHdcdhzlxrR62HjxMSJHrY93zXiogXkPrynJHY4lfYvylwOf/ojS4zLM/mcs4q6O755AfyudWnudMcL+Vv5fCk7NUYefLLcj2OP0AvcmZbjYhHsLtr27OpXBj+W/ZasmL8GvuFhkaLpSkJ/gy311aTGSVRHn1dlm/AeZs1W1deCHwvHDF55TxAn3vv4klzrgW9Ahao/O35OomJjMw+KRl6Yxv3jpk+/8E88cfaBce+Iw3Cx/Y3v8GVtDnSKmjzQUW3zT9q0Kf624p8nqhSIv+c6Z2oX6ck6z+ld1e8a+oSBef/m7IX/l68HlkQV+UQc+epXWmzAT83aE1eLJcE/0dPBv+JP5Mbv5OK/SZ4cdFMbkx/LtdGVuKf9Hp4uQn89xj89V4Z3rd1zPPpbolZi1b9v6n4W+LbdX1Il24vcIG+l5bOP8L7k7chJv7sR/3NU4/HvmsC3tj6w73ob/Hx1L7e+ohvv3F0nzPR1gt9v92DV8ZXIfToNXjNnN/YoRR86dPoGnzAzZHze0ck9VAmXdoe7p3NXPPL0Djzmos7lLNK7EvKnoWMGpUlL/Iikc2q5xb7Ajsu7aJLDGwjTuGZWyg74cW26vLL7z14W5fnuzYO3yF8d0kx+nYr3Hb4X2zZLzTo1mPGidCbs4q4NsPXb9BS5TCsnl2n4VVlYe/K1+7exz9zn/yqOeZ699rZxVfzILXTN1moI+zTThplPMqDfKt86IOLTRgc1Y31E5VVjlbre2n/iGe71lZYOuTgBOcyueQ+WFqvoqFLWi7lcGr/9kaXHZr2AfPHTwk3rHqDnWTTJ/W3y3y4qskWutwd4r3/x7NwX4ld0R6rqVzyxn+u6J/fTLfCXm685Bafsk0jd+5Nu9QziTWWa2zF/EPYRRwKvzXmMP/CIsZNqNtiv1OXY9I1OYae1ss3qB3i8Upb685f04jwef3PcjQ/c5wOb1gi4STy8ydtvDt+BH9wjTdv3z/IcO93Dg0tPwO/WpGnRk2q1dFUlf1YuvCK5swrpsXR43Uj8MAffzJ2+B+8zLz5bPxZ5t59f1ffbxS/E065nT95OpMakPhcThJ+LuPxpjqXAjmXp0BVnZ8APPRgUuv8HctHMTzLOdeae837O5+w7O7gphx1LO7XFb92WQhvP1cF+s2rgQc/rl9nXJWrGHiHebOr+Wz2TY4/fr3qHw/3xF5H5RodsmzNAf48vn/ELf7vO849eCsAfb/yAIsuzcF6/+rztY9N2xF7KdTLsIvrAXXfCgyexbquX5PB8Dl4k65ykS1LwsqOtxtIvxHdLG/Fm7hQ/4F12waz2nuBDmvIRMxzd1M+FL6Z+wZ65QMkbW+og5zzSI+eh7/BVrh8ia7aGT5q9Yrh3I/RlYV2GvvjNfquR5FxENfxRj06WumcF4r7fbX/xucQZLf+n/o9a/N2/e8U9teD3eh6P8MuDHKrc33aZivA+Ifxnpu+rKydVUfm9/ngQp/Tu9z4Zq+P3c2LBvXHvkP/dTDWrawPs+4o2OpY3dhzy0kqXfPrzPn7tjdSxM9BzJDtRMb4KdlnNmp6+kAj/AcvGzt82cwbvujrdt/j8wI5r0dNbaid2hLlOWrIcI97JhaPTprdIpsasiZt++hN6q1dzbt3Abr3oslZjFhEnbV7ajXn/VE+k2qQdMb4u9hm5jo36Gbqc92ZbLpVtPhj/UEFeXZyJB3Z37QOng5xnvRosCMk+x1E17/ryeHXO9a7BliM58ZtWMce6+VfQuxd6Muf2a/yROO5+/ONKP+L/lVrrNyaDqxrz48C+PvDxlgzz/eoil/x+clK1OOIFPplzKVMj/KV9L/G2TH7ew6e/PbDxHuwmVi5cMO478SBSn+23eBrvQS+v+t5ecY6FFtk/aD5xe/MOe93pMfHvLodbdnzf4axeuHaZ6oA84NHbNolDCrqpm0U7lKwyzkN9Od3q8Db24YLynxvG8C7hy9ejK5JjH/yqi63fAOxQLz1Jde3uFuLKfIw98Yr3i82aTlv0CvnQhF1BDw/h73fIK89LfVohL1zzyMN9K3SqbtsKD6Abn56/DO+IHMffd2gjT/xZbg9/E3lhFPqcwV6ZFuG3tHB+dfUq9h2fa0YV64GcYPrzOs+OYH9Ye/jXhx7oGRsOv5QpFv9j8z8+PuSCf+fQj9VbZcP+qeOpQseD8J/TuW3Nu5ugQ2eyveq+CL+fj39dKrwHf0gHm+5Ms+I7dhTvOi3ZsMxNRV2vlLEYcsfNaZ9cSHkdP2lr0gRF5XVRrpEBQytvSaTOBoxtUAh/YCnLzCqykPm8zJhvZ3r89Fb0XbC+NnEtb1o8Ml0jLmyxO19WVye++ekapab54pcvZl6ZF3nxS3FszuI/3pwbc64tPN3+D/Lml9dmPMyJP6exP9dPdObcvVl5uP8i/PUM6vh9MP4P8++olvtpAex4hxb93QC/cdUbp0szG/u8zK9H3NmMvV2NKS9y/l3IPXeZY88/xAfMcnh09BDi+6UNvbNpb3viAKxacMAFPwI1+ly5tpL+352bf7gjfomcbjz/dYw48X3He6dqft1dTd3n32lmS3cV6Bn2vBl2Kx28Ui+vjF89/w8j194k/nLV/ger74Cvftp3Y9mK2G+mexFVeSb+extUdXK3sZ+2+6yvMm03djIp3eZnwW5orN/mxenwL9tzy9bE83h/0Hdq2bRXVRLVbZjHjPTg77o5B8YtGOGm0kU+GjEU/3GvZk+v1DEOPzM3Ck2shjxocH/3cdfRh7R5HvP0J/jW5kWS9ml5N3CjTmBMqdLIWeNG5Uk1kPizS5N4rG6NXrDqlnTf4Hs37Jhx7QP60fY+0+vPIN7R+j5hqcfWJD52twKJ8vJu/WnNhWdyoy8/V+nG/j6jXFUvn+mfvm1G750sudNU4lXsL7At1dQB6CUKD0m//Tp6q5yHWp7C3qvxhBd3V8LH1Hq/ovds3jesG5DlSA/oxYSj55v8JU5k7iUPPTcndVCtmv7alQ599Zj4aw5Xwjiv6zZ7exq70c6V3/c4TPwN69jJOYtgH11p4bCZz4KSqnLxi2/2W8D7inxJU+TAv3bKHx/7vUJOG/r9c8M+6EsKHd57ti16/Wsjlu3Pjf6yfOsU4XO5FwX3DqgzG3+u7lkcKk7n/Z9ni90HlvBeNiR7o7Gp0MtUfHY8xhf732bzCi1qcwf50fxTi72D0NP9TJe9Pu+A14+YXzEcOF6IOfroB+dnTfc/+RrDL25r/X6iCwrtuENTh2ZDrvbFsVje09jhLet2P3s76NKfjll21eE8znurpU9i9IMje0ZvDimEnVTo1FyDiQNTKcm40ZUzuqguszr4tiqJn+k+Qx/EIk9VOfsW+4qfmC8rxlycTbzk4Q1OpT6FfUWdQvGzFqAHTD7AtWMz3kHeff0+aCznRoalfXdUwx711csu/XMj59mVbcaRTtgzWKod2rmc+1H3t07+89Fjhqxv8jh3euwJY6d2iCEejF/7reHPuS9u7nv1x9RTyL+d/2QuGeaiuu6dtKMt/v33Tp4wrAL+yqpE5ijii9+g8ln7H9rA+d5g0oBSx9AbNX1xcP117EkqxSfbkK8y868yqvtL3plU6PCwWWrsrOccbnzaH79BzwbNrnaa96grDy15uSSZu1q/asCqb8RjHRZyqscO/CZXeV1xbK+92McXcmtXh/tVw6atPF8R3bD9QMeBjsSV7JisSVZ//L+9d9n4objInTd0flobf2IPDs88+DbSUSU683NjbfwUZN/Ztn59zvf9fsXjSoXCJ+y+cfUj/O2b1rt2ZoC+tug7MGwW7wEqp1002As/Y4s/DvpWnXeaDYpebtsa/WTy2tnvrCWOhNdUvx578XO0+22zWWPgdxL5egaNx876Su+HUSmQY7Y+Vt61PHHl3eM2z7yKfPRy/w2JxE/j6PdfjyYXuVNswUaf8YPfM2+v0su6uKokjhOLr+dda0SiJO4LiC+9v2uGVe+bEX8z6dMvE+ELcy5bPD0HcTzuXk80tQv+fhwnTx+eCrm9//oVN2/wXtD55OCyx/x5FzTl2bch3tzX802/mh75QuvQvyt31HdQqX29nsQNwT72wMOyD/CTnCPi9Kad+EnuuDRDhsb4Jbv+PdeN8dDD2/mnuVVLllT9mpC6T6LGvKcOHLp3MYET9zsu+J6BuGYH37Tv35P3TXVT+T9dXp79ceZFlvPt8QtQKa7Uc+TLWwpUDJxDZLgy7nMK5SJ+ysP2L171OwM969XvbyX4wR/jSrlMS8/9q+6ttp15t38rdcEce/D/lO/2y/glyCOiLlTYcHckfjpvJ7deJJ5adLZlzbyxH98Xta7hDe4/j879WeeLXvJl2x8e3YijlnLRx62psGManuLlgKsevFOtYJuUCz5+fsf1t0OQ86w4/nj6T/y1lxr74E4J7Jz3538fUBJ71bmPm+ysgd/ZvMk3va2B3/HRX65OqIdfrcZ3N/dcgF3Bt0LjevbDj83aBznrN0B+79d0UXnYKnV7SqvfpXnv8XSlpUYW/IzsDwp72R3/uI8ThS9ug11U0/XFNzSEzyg5qumgasTVHeaVIbAleoX0qUNLXbrtrqKKjwkojB763pYfxxascFOlbvY69JZ47mvzWzctgs5t9mwf0Ar/b0NqqgpfOM+H7xmTfzNxb+rnWmjz4v3QxgP9R6aHnqScM6bXDeJYDdmbN09wdwcV1Lb72pLck3p5Zo5JzbkcsiF/u8B5zmrtcu/XHys6qzTPG37oWNpVeaa62qtkKQ+Vq2KhzDG8Uxif+nDBNXWRB/j7tJmHvP1WbED4FeyKh+/oOa4//tRaNE66YgfvYjbNHNdc4kxNKFc57yj84RW4MPLFPeS1U+f2aF0HPWqE09r1nbe7q34FvvomxV5jQo3QudPw7/03/aeJ+dg3XwveD09mdVV9f9Uu3Qd9ZGjJr3XSL6SfbEXDOmL/mmNm4KVcQkdezt5yAr62fkDa5JOwo3NcGB3T8SJ+9Da9eN8Au+ynWzpejOJ8+NjrwLP0+NMdVPna94UnnLH3G/zoO3YkF54diy2x31WlbZZn6mn0FHdeLvV8A3/+bsYi53rENc74dXaVUthL9vDP1HEy7+qb3LMdO8G77wI5iyc/TL8zxvdbf4/78qdTu84doP3G496sHo0es9/hZ6+PItea+mn+9arYS05MNLjzQvx0lwyq1mjEbyf1slaBRnUbIl+9WHbs26nYmV2uZdmHnndIgO/cGvCNFWb0eLAUvdHnoVebB47GHirr9Gb1Xjso17NnbS6Xmd+77lN7836h74N1I7bzHmZvoZV3FqAHcwpSlfKjl7vR+e+rnrwP//4p2PUO77ejX4zKviPYRU2O3m/b/8BD+XqtqLHph7vynzv4pBd+43cVPlvHFf5p8ZSFI9dh59LvefEfOcWeIzRjwVvYh2x4PTb+M3ZftQ+nfDEEO+oPGZ0a98KuM0nTJZX7cZ9Ys2ZZkk68q49yLVci4wqLOnlyyZ3rg5BLppr21Ae9indgg7s5E7uoBxu23W+AX+reOeeVPokfgvOOP451HJJYbSgUusOKHmPClJs35sOfdpxVZ9tA4iOcz5xhX3X85R08UHxhQ+LjbPffnd8TPWW1uPR3PIj3nmXZnkLd4Xt+TM3XOg/+uw7ELozq1NhDXeu2ckjOrs6qRu/ku7vhv/LEi2OJs8EX7lp8K9htKPr2u2O/TFuJffuGxGlPw2fmb1D/ei3eXT9wSTusIOMLb3y8Qsr6+OcLtF1PjR1VrmmexXdxjzvcrO3Fovmwm6uxsEMq7I93Fjvxqg709Myngd269XJXFSoPuNEJP2drc6W/V+m7m+p1a/Cqj5NdlNXWeVQQcuj9Z4aX6cq7/FGrG5yphr+btj8Kz75LvPHsheZU+Ir9SoEFH9Lkx99YnlVXWr9ALmAZ+Mb7IH5U5rk3Hi3vgZ69H7YyI3LQY9GTjnxh3evkD50e7u2m6p34GNWwuKv6vKBQ6YXXndXoPot6u5dyUUt/t/Yphz1bsRyZplnRuyS5OLTrJ+SMS70Dwp2wZzzwu//JC9yX1nVJfm8E8+p94NfbB/H4NS592hqDHanr5xnFG2APODroY/1BvJ+N8jrxfhNxZNyz3qgcXddFXUuVY8t4/D4P7R7sET8IP32NH2Yqxrl4Zf7QiCLYjw7M3Nnihp6r97r4Q10+4v84Il3xPb2J81T4fokly4DDNVwKjuSdY3zKM28zJla1J7/PNZs4Hd8XVm/5HLn/FpcDLYbXJn5gvVuTD8HvPsty4HlYdGJVaWf480zo92dvezf8K/YBu/70mDKZ+/asurbzBbDnS1YmYm175LHfQu+N8cJu0nfFkWOib+u9eXrVLHnxj5evWFAh3qmV7lD27nT0hUsqvhnxHbn21qODUsYQX6x2r07txuFvZGCXDZYfnEfley+clRT/KZmvH25ZFjuS8Tlf3r6PXqhz3jWPSq3Fr0r4vrRNiZr8t/yirId5n94yXcDX5cTd/1n0U1RaB/jH71sW7MZvQMi+z94liSf5YcKpoyf/oAf1XrC4JnqEJLkm+MY2IV7GlZvZR+NX2jVud5r1yCUWWUZVSEw8lJev3jdLz33vZ8DaS6O4x4Y2e54hGn/1Q75VvFUC/94Vvlz5URO7vd4lYi4FIBdZ/8gpyXDsoQ9XODy2DPbfU2Zt3/l8AffnEjMqvMJ+bOlVh9+eM9FHZwzeeY777YiyN5bNwk5rZ8N6f1LjL3BLlo9Dv6CPyDfo197v6BUu5/ZYuQj7s5zvU7ezcV9ZuiQ+91b8ggz9mjij+Puptu6T3xX4/4G+E3aOxR40Xcu+57cSM/bntsreQ4irZin9Z1535N2tT7Qu5IW9Ye47RRtNxB9ZixkH59Qhjt+Rr98S38EO4Hf38K8vkbdPG5zofUf8oE1J4fNm2lQXtWdOjQxVp+IntGmx3rH4G77T9PWB4RPRDy2au2U7/sbrbRkS48A7ldH7enhNRp793KllgX0Eal5S4LnfPOw6iji45EvCu5u5R152T01chDe+65olI47AjPn5My4hnl7Gitk+V+Vc7XrGYfUa7J+X9sz54kVv3sPOvP3w7Fzi4518EHsDucTa47b4SN5HlK3f6ddT3p1Glm2zw4e4GR8KZbkawXuLR/sq3uiDft/z3L3PSbEvTDU1cO0X/DMFlz43Kx49w6P4voWD8HMzt2Ebj6GL2We5HH6/5m/H5G/yTgh2VtdO5Ay/ectdnRxY68f+lMjbqn1pl5/fl3bZnvjZaeIY9V3+dxH8mmpZoXMj9vWpqpEX1/DOKc+1t1V+8E4yJO/vLrM4nzr9fprn+kXiwu6p+fpMQfTRR77PX4jddKD7zdUOvJM+utez/Xb8udXN0WxiJHLS2eeej2n5mjhpx8esOc6952RA3tYh6HOLVXhb8AD643Mx5fbOIN7cCc/gFR68l5j1Kvv6rtz7vc9vvn8H+9UqdxaPKloTP6Ebnwd25/x3r39+l/dU3jHNyZN0AO8Gn1xOUS0rfs1/DdlWecZxN/UudZ+Dd9BXvPAvknUbcg/bkecVBzbhvVWfcb9L4MekYPGLtfYQF69FotZP22Jf2/H43y2+WfBXWL36rW/4aQutOuNjO/QO3StfqRzGe+Uh1rl5n7+3KN8Uu1+2x26uaExY4II9vHf3SZv8O/p3wgn7d+o1yC9z6ZI6KnnjXsRv7hZAdOcmXXr2HzBokMQTljL+gwYEDCggkbqbELu9V/8eOny4RHIvYK+rKxQgRzLL+PeRL0ra/2ps/7eLUuUTxD0mZJTieYHqYXPpPXl3j+ODPvcvV+ZLg03jGidtNKun48odDyZmSns9so3z1ROfpUzZLSGTpFy++EV/pOzHkj4dpPytCbZdUidT3wr5pF6fk34/pe6ILGO9pH6ezOJ9Tdnjtst/E/A9KP/NML7H2//ne6bOp5w9FajzXXQ5jhb7f4TMsv9Hvv0XLLns39Q3vo2fx0/X9RLpbwf9rbsZ76oTuv54sz9dYLw5DmedD2VS2R1uYV/T1iE5cfDwsKMGSEx3tZKUOXb87Nh/S6Em2uNHG7MuYo9i38geT5qo1fYSFtrzUEntK8ErAnvEcy/8tCt1X/m9OXNeuVVMTiEuvjpANVNWdezfbcnFAZ497LsJWhQ7NFfSHi5e0lzolF/wWZrhrprGXll+EEtrnLdQORmRrjHHIYUPC/v4DLyQ/5LytyOjlZj7iJbs/0lcdRmOzMZvyTkaRmnrbi/iQ5B9HIwQqh31sL0wZsr2EXjqJr3sU5aw+r40ndKeB+tIg1KPx4/2j+QReVb/ismwPSU9CPD9Zp2n07+WpITEMv7LRj8GKHFfbB8+1wD73NnvfAtAs6hU/03LjVYw2LYDWcZowE5AISPxtLcjYCI4tUpuBwzHNrmu9hETKsr+r9RJCugQlWvwYQxFPWMs5nrIR2ZopqQf4z+zHKTQPiZjrRCE63LytyyJQFdKysfFji4Ck2TKb9lF4AAFNKr5bZc/xeO+fewCKQOaRrvSq/yWRucIxGVdUOTZy3rplo0R4ubtjzS3BgbB+M/bDifpzKhvrovUNpDbRGf53Vh1EwYG3GVGAh9jbNKf/EZAQT13RNbUdbbXE4gavxur+a8PGaGgpfwq+cbqGattjN4Ah/mv/CcwNOAtczR6Ndsz1l3+crXXd7fP7F/vAk3pw1g3whTZ2zPmIL/5bb0CnLgHSwH5QTadNCAdGY0YIJU8A9TSjdGYQQMA9gdpBCWa/GjMx/iWf6UA5uj2+UpzRhmzCWlURiVQMuoYcDFxT4ZhdsajbvtgQJboq3RItDQBtXQm/xodmRUTkYe0KQEoTIDY0WNzCA1ctBjLaQxHBmKUwfrPnja3v0zMHJIM1ChnpI3NZMBI+jMWTVqTlGwGE3L/kMCs/7+AMn4zwWRuI+PfhGAw+pMZGgjmNz6U2bz2kd9M1P1XR1oy6TV2xfYaMidjDAbMiOOpkcRYHmOkkrLV5g0F/rFs2f8o2+sCyjZ6s+pTC7subEetkQ4W28vMypaT395uVTb83ljxDWL7sFnZqoRbbK+3qqHBSZU1OJ2y7U2nXLanV9YCf/C1gb+Q6t6W+/63LLY7PsryPIOaFJBM2fqlV0/Qwdp4J2jDl6wNu7sUxOq35vujnEqmsEQWLKxsvJG2DaGtM8kttryRFhtvVq2zPZXtjY+y4Z/c1tRF2V4xzt/OaiTxRmx9vSzWo/R/nt930V/sVvUEfbstB27hTm1XNgfaebVVWZ/zd3QBFYOPO6eQ5BbrvQzKejvGYi3jarFhL2nDd31MS9ontkwsdvOZ8T1je8ecX/io5PgxsKWlfuE+Fsvn3hanE4zhoY96xb2kTx3mXxX+MRdvIfCDZovzUVbic9qIlWnbzng8Ii0TRjH3/umV7aOPuj/gliWQuMaWnrcs1rsxFhu2Bzbix9siMygb/iBsDxkXcukU+MR3qeeubMTmtWVy5h7MOP8WUFZsJWzP6AMfOrZnwKHaK4sVe3wbsd5csP+3fSigorelUS7hqZXNxvjxmWd77qMe5gW24IG1BGWxf7LxZs+GHxpbfAblMimZsuIT24Z+yYoNsg25mNOZlBYb1Nv6mPEgV7URI8IWTb/E9rS5RFo+VCNvDXiQOtJivcM8bgH/MZvREzDn3l4WWzR9/+SdODpYK+8MbNgexuBX2VbrlSX1aebAm3Ybdmo2fG7YiJ9tm8K44plPV2x6q3taXLEZd6nsbbHm/6Os6KmdytEv+kobb31tUbSNTNHmAH7k+KOy4XfL9hQY4cfQhg2yzUY72KK6FGftrzKuS3wOgiPtvZRLvtQW6yhgjw7BRkAOWx/Gin2eLRvj8ZJ1oB3kB1ZsUu93Zy74grcNAq+fsD4p6O8bbTeC6J5wZb2okz3SYnnAHqn5yhICn21LLjjro2KR1VpjMitLXG+LbTrtVH9lsVkpN5F5xrGOyBateZgbPiBf/fJRPtjm2fC7ZiM2tg2/5LYptyyWiAzKeQXr5kM/PRkn9j22Jz7K6cA2ZSUGvhX/v7ZWxBYqhxzuHHN/n1/ZvjH+trTNG39bH3AOW3frEeZ+nA9+oZzK4RMSf0i2GoyHi56VN+y2bOxvbMNsUcztCHvmHv3gu8yCnZPtXQHlkgR4Y9NkXU+9QpS9DDyJ7WbjHmZ7TPoDv3+kLvYJtkFeFsun3hbrb/L30tZ7cOYYfb8FP8uwj5GZ2BQ4gy4gthPp4elUyhO0kwS4/aFOKB/08baXfF/xUS6lPZWTDfijG7Lht8KWBxkr93lrXtI5qTOUtrGntmUk/ZY6zxnLYMojC7NlYay5yf8Inp5gruVoIwA44l/Y+p61iAO30fVZ87IOvJm38Z7UZmW82HnaivaxWOuBA+nJH0b9RJEWlxAPZcW2LfY6Zf7SF/dcGz5SbC8KKAtv32ztvNhTaVWP0kmVC3d9220ZD7+V5LeB9PuIPpFJ2DBot16CBtzOrKwd+NubMaL7tP0BhsWgMdHgGjbYPujpLR/Bn2ngT3rK+Lqy1/gNe++RV6B9yOltkQVUZuRsNmQftgLY2Q0Ct5FT2ZDx2CKBBb6NbD9oV7EX4AOs5xgT9rnWt7STOp2yxPCNf1lbZmBVgjq5WJublPki68qaYwNrI36eFd9z1jDoJbZpVu7F1pr8hh2oldgstrOss2ukxak4+HaXtkYAr8fUmwquf8yvQsJo6xNj2M9auVN3PPPhLY6V+An3+5NG/27F95zL2x2qaTPg9p5xj+QMqJjBYuMNpvUVOM2bP0/iS9tuMd6d1MkEPH6yF46ksth4j2vbQR52vsl44289uF1ZXgDrAYyjEvTEG1pI7HbbX9oZTbmcfD+lnZ/sQ3zgveqMPXgB9llmyiRjP/e4ZXHpyFgtwKwDazqAeQ1MryYMYj68lbL9Zi5pgBPvBmyjNiun897sefK6s8YjE1lsyGetuYDnLcbwkHmd43cf8KfJNpWxPnRpHGUf0T/vfmz4ELEN3awsH1jnu5mVSzHOpsBbFi/eStmww3Q5DR1e66iyYiNmy8ycJzAG3jXa3tJGFG0d9bTYPrDvE/Pbd9pER2wNZ53wqWZ7ybl30VHdL52M+yz1qrLnnwHba6zHG3ClG7C4xx6rB03AF4AN+ZItFzhHPEhbOG3xHsrGW26XetA6YhVY09IGPsGs2clHJmstmxbYkP7sozJg82Itxe9nOeMGAr+KqSxOg5kLMd5tVcMt1rKUQy/QpyZ4+5j1SBlpyZ6cPm2MJZoy+Ii3EV/cSgzSCWOSqT61KZeVPvAJZhuVTk0YSdtrgEms4CWfA+DHha0qOl9h5ca7bNtn4GGljf3g4ssCKksj4BVJuRdblcWWQaXHZ4qtZB+LDRtKWzJXi0sZzm30urZUrCN2otYf1L1P+a/gxDvWDd2tZfUJixdvn3r4JlXRyMqj+rG38m2DBoEj+Iq39gUvLMD9AvXuQhPQj9pioZfFUyvrfeD3inZ6wJ+0ou2klLvH368pi/xxwmjm40neO/7eyvjxaWcbAr76Cw9FH29YJ2d+L86Yid9lfZtZtWnO3qgM35WN/Km3LN7Eq7eEQ0OwF7M5Mo/SwGokbWAvbyMGqC0DeTM4R16DV1+By5cCKhO2o7YzPiomf2HlcjiV5VVb9scn+kQnYz0ETHcwJ+wnregMMqahbF9+j01hsQ1PBL/CnIalU5nQ27hUpRx+G20xjPMD84rgLRx6cZd67AHe5cQig7TV4Pco5ufPmRBLGa9ISwg+k20HGEuJPhaXcZ4Wq6+TcnqVwmIpDW0bB40eJ7jDuXyBfcy7XBs+PmyDabMu39jb25C1WfG7OPQo+IF/Ihtvs23YBVsJImJ5CT2fAE4XAWafBK/hGbCps7kDh43CmzmruzcYz2TKvJI9UIBzHJhGkP4One5Ffi9iUF6FfpdgzrwvsQ1nb75g3sHbldWDMeLD3uVzepWBN2K2EemU83LoBnY1toLs9xHs/V6s928LtN5HRRYqrJ6UTqss95n7L/Az6x9wkXRq6maBHlx3VdbMstfAHWKf24jPYM1NO3co84wP+ncbbxusJ6FFw2h7EXP4wvzRh1m/08ZFxv0R+BOfwfaZv90ExxgL8eRsYrPxIIOyRAGTW/Bnd/k9jHng49uGn0EbPkOcSvF3GPiDHy8bMnobcmVrmnT4XPhJG+z7M/AZ+cHFGPxVl2MN8FNmG8o43rNHcghPSP87aOs0sLExrpnC7/NtzaCcjnlaRl5jjQLAxwjm8oB7wEP6CoFml4IPWE0+fqNcrrsp6xt+J1adNSLGkv4D9bGTth4GF9CrWMeAD9ddVCrepNlGk9eGsdR+ZZnpKNIi7nKJcAauTllCLF76HjZBnVHd7akGar7KqgrZBSUOSLyq2W9AxfQFOQeXaRy4qg7/XcTlvoVHCoQxSqHC478dWqxT3i6NQgqpBTbmLRA/K/aecKCrCutrN7YC3MIqU64fJQhtbxeAiaAGqzYtNpGUKbMyxEwd9E2ulL1HuWnWJJA377jtt1Sp1UQhdtc952BGmVRByhh3OXBM3+uMmyiO0/VdUW78yektHf+KOAWPcfb8EtRBjU9POMvV98MM/JpT3w2JeGWXrckojXtoOmoYMgQpIUKONPYbp3FPxSO1qs93Ln6RdmV1DMGfecXnLRB9y7yNdcpB2hCPVOYeLeIVAzaOiMK4wce/4s7LQ/psVBR5COyj/XJLqCV9nTeEGZha2CVQvD1CnGlcihPTnDPNC+BEmieAlgnKR8Arcrdiys8aSxcTLTJcAYhxkTYXxBAOlP3vOi8TT2yflkyFAIH/iRTkV+nFGbmmSMDc+F0+hjjSQDaRbFS0iwsw5fxPWGDK2tIpv5jXjAX9iyFEk5/9fklWOwP4hoRIBA644LTLAA25kchMCJJrl/WZkkIBpTEn+V3mzvNie8OyaNJO0X+ihag3dDLAGJIpmjMFaUaDxDgEYG52wBlTRkujJ25IGgRDDAGQIcIz/stvH5JgDK907UJK6dyHRUpCt2/p1uKKaEkSM0kZsEiqkV2AIKtsDEG6NWbwT9zBUZVA6COdezCM1LoGBuF0JPA2kcyQUv+rY8grpW2R8RHoUqsckD7NeM+YVllSaHGJiIcMwBhyP3PrG/I242/5XVbdkMaa8jeZFa4P/5Pj+pBjyg8Fp00JovyGyssOTI5Re1tGKyaGiKTV/EtadFN+ez8wyg48PdJCNmlS6AYxb/8TOprDE7QxV1eQX9ZSGjTkU4YcTfap0do/1MTOe9lHupmMxYyHfbMZomBTDPiP4vwT6xrglu0hJVL/J/sSHYKBpESX0nIvk/KKXM0UPjvZxyo01lQYGOOVZfDb+onRcM00oWISboGZCSv5lr3h8Z+6QMpJjrFjBFkNIZsxdG9ww2jFFL6ZYON5gvIL+iyoCiQ2SwKXxwa5NFfIIJ0mUROSZ1AKAw9kjWWyxhj+4bajPVcomci5DYwwpuhip2IySlMy7IFz8TgZg6hKJIEZvqkp+N/lMDauIdyVWQh5drXrO0R3ID0IVsvIjI1p6BFMqfm/xRREgARt/SL9Qib2SwK3mP80B4Yg0RRFGv2aLZjCZQPWpqDS+BjLakq4ZXaGANVAOjmsTNm1Ud4QmPod/MoAiD9oylP/bUNDZG4OQRoWABi4bRD9f3JZU1Ir5BkqNOObUFgD/Y11NY5k41gTWiB6H1MwK3Mx1snEP2OeAl/Zk0ZJAyME1wxs8/sgnWyzmKL2fxQr4URMjZRBoY3fzaPWgIcpyjUp4P8XfmOIqgXUpq7DwAJTs2MSBEO8b+K6SVkEE4wtZh/x+u+MOKUUMf4zKL8hB/c7Iz+uZDrGMYsl03+8hxw20rGAUtDNOLhN9YdsUfO4NLag8Tcyqf+UArJlzWU35dX/9BSu+pQxJeYJJe6GPN5o0+/dD71d4iXRzVDgmL8aNY1tK7+YOgUj1yApBugNtDBOPFOl86/sv8Ux1B9+tp90lshOpn5JktdeJpExSY0pgTdGYRzfxrb/Nx+pY+hrzCU0ycc/dDEW2C/2F90MFMJqUj+TMTXoh+iiTLCYe1U6FN2i0YHRlEGMRcNppA0M+6fX+qcnM7gLv+jfAmBG8EMSuKP9xzQYm1D+EjrnF/SHAvdYC6E15h6QdmSnGaMw+pDj5Z+m7J8qxDgYDEpmjDghk2JQDgN4ouk0SpigNlgSaVNQ1ez53+L9U9uY5MMgGMYozFb+IZZZytQxQhj//BW1ptGZTOnfcIxhmwsiKUP3ZhwB/xr9dwYCzxvjLyg3R6GJwM4qf+BT1tiuBvANzDQJiTFZgzyYx425UKK4NZgXv82BNIRxvmwhAyrGnjeLGxvYYMGN+Rqn2z+aw2jeSCNEyE2o4zIJtEEuTSqQUKtlHKymNQdb8uAEmoF8+J2ShF3HZ+wAcx/LIP/ptP71Y+rFjF0IrMZPpAFMcP6p1cx1MRgKAbffYSlkbMpzkuRJVkLtqTmdf+TB5OqNc9lUHZpLaDLA/7TkBrzMLW60BHe2fxKdYXpgzttEJ4Pz+XcQmAphw7bBRFaT7phYZOSZWyWhetWgC0YZv/2TNWzPSGLPVvwn/Vslk1oZPZn6QJPCJlw7E4eNLWceKgltQv7Ry8SqLqYuzliIVePSiRBc8QhdoUhRKAuVA7cynIophEmqqZwkfDcYqdTpBnhYESM+PtAG9ZEInxnY1yh5FI8k7flSHyWTwimavT0p98CfGzKgQGGjLgmU+O4mt06+7SYZfB/mdZ7ZNg/b7GWkvLRrtrOYwmnxcnkMT0YEwVEI8VUIXvFH8PeLCUp1EpiRh4JK8YjJXn8cYxRLGjFpkDbbt6Q8ZYfIftZ9IRhVGRkjDlv/60u+5TeE9cqrN33T4RNeNuF00j5elIEKwbJ9HtKu5F3Aw4Ffv3/zkDyzTUkLXKoRZQFH2v/93RcvfxbMiuYw+KRTjXHJeLYM4xELnj5bIKTogJACgZU6wID66vVIzVh6STOkS1P/IhZYLJFCOK+O82LxOaiCgkalx4ttcyJAHuOVZRSeM6R9mVMA3yhPFEEz/oMZoLLPXWDVHKEJAWH+G/sBjSeD9FhujyV6LcZXXt3xqgweYWStnvIx8UDmdoSXnrfwUv6eMXgy9lHUQzFmhysKGvtYq+kxC57J91+8X74cjSXjIqIu0O7SRkrNGm6ME4GqfXzBRM7fwwdHgva/U8MvoUxDcmS0K3M5Dk6E4Ekcp5n2+a4FPjj2t89VcE5wQ+pizKda3rIohOoKxbeaqufZVX+bMJCyOKa1w1TkNzLWlCWUCiLKaxFwiqW35wl+mDBbwDw64zVV8M/EEZyKQdmM/SXlexE1lYCC9vH8YbwPu2J1Di7iDMzeZx7WOaD5v/1p4s0xPeZwxF4yzoasr6yttDkTQHSjX9kPMndpB7S0//aAaCEYbv7XjsxF1ttcE8nnAY69rOCp1JV2BeeKajjjcMC+d+U32QcYCagiRD2QvYBA2i5vEzjXB1nvapidAld+MBeRNgldqQVO1tDtZCZiW2MWpyJiphJ8VrHHZY0EZk0wdfvO/P9golcRBE3CYC7Tzh+iuNbT4xQcknmatELmtYAxHeEzh/U5VZ329Tzf0k5jFiucjDTQgRg9vgyOxviFpqSn7Xx6ri30nlhBndf0L39Ln0uI/i74hmDcPk6BkQm/qgBe8Ebq1Qd3hwF8gblJX29VIDIObMc9PjivtOcPwsuwwNukoY1YBJmX4MVFnX8ND9ECP2m3P0i1lH1eiU3fiz0iaybzA83tsOcxmcKgQSVinrJ3BD6yLwQX5RsntHbYS3tS7jzedUyaLGVr53ZQH6E9WcGjM9C+Onrf+zTllRZj7cL5sQqksbI+bjRWAy8uFfgI3prnQ8hgPMywD6VdGZPAJhiawAMHe1rGYu5XEz5ST9avmD5XghjXUL0XBa/sZ4f+W9Zbyh/XYyuGBaO0Y/YvOC1rlaE0eA6ABkL0ZJ2kjaN6/6DIVMMZ4Bx4pCTMdXxbw0xQ6vuzD0N4VSI0xNx7shbmOrr5OKhp0D+Zn/Qjc7wJvSMAhsJYQk3mBTjBlxTKXBVPudbgz2C9l3KzD4V+medEHPujAvRC6KtJI2XtZayyfmb7g/Tc5YyRMQ7Q5ROe3wI/kw5L24d6OKgIXv2emyXrx1jYA6czGWVl7NKOOUcTfmY7oezhVCD9btaxakMiFWhYPyMqsllHyrKd7eN1xFpZzn5pMzd4kxsaXlnv694rOGc1rZO6UqYL8+6I/ausi+w9nCfYYTeM/ghcqJrzyQ1dbAZAOBLtOF4cAlSFdgRPgzE1bgwOXtDjEpjKmO4zPsEXgXUZ1n8QayFzlj5dKJeLDfIS3sGfjiVCo7mulYKgkfSPUZAdxjLWweDOZOiTwErOW6H1Mg4cudtph5ybsj7pKFcTQMg+NvGlOURqJvCbD605D+4n5JPo3l4vGh5gD7CCzbCP1zyTZaxCY0wcMPfQD/Zewj5knVIziKJs5uLQLmfo5wx4AtEDCK5IWelP1lZgtkDTHmcivXeFdggspQ+Zr7SXq7VBF4QWXIQHkfWUPvygeTJXmXsFYHaJG+M5PgIXgRPV7L/t0GtRmvYFj2Vdg8B/R2ixGBnLHA9pPK4JPl6GPu9abOCwzFnaE7oq55ec+TyUsrf/MR8vBqFnedlE3jA/Jo+ZCH7Vhb29YIMxVnP/yz6W8+h+oFLtWJfq4BlOlv6jDfJbBV7D9uHslLNIYHADmiq0VGC9ENrDYy/7Gt/AO2ot6KG0L+VwJmkf01sO8p/Q+P60gWMze14P9ozQNpknj43t40nIWwosL0CozbGae60cL+eknsxdvgXXpL1aeNouAX7IeSB5WUHAIM4CQfBRGo5Cz4WOXwbvTX7XCVhd5TON8QjvI7iGUz07DtwAJ00aiHGbfT+aPJHwKFJG4C7fG4D1EHDXPJ+kzEui8wvvIHCKpo+17Ce2rH3OJn/bHpr6iUU06bz0D6tk7yc3ryXLA4PaeBOQ9Zbygj92ngc+dSabvYUe31FegOzlQ6BX++/DmH8lzvZDfMw5yJ6UvoW+Sj+C6wLX5zS+iczPrN07zkqcldvnZJ6p0q/Jw0vbxTmrO7Du9xnoE+odgPaY6zSbvXKcKCLCxwp+D+Wl1mZ+F37IxFtz38pekvXOBm2SM1H6FBopY2vEJpL9jDL2P9hIHV/uQKMT3MdMWAtudGLxBYfMMUue1DX72w8sMBZR/fBSI3Xld5Omye+daVvuDrKnzflIGYLB2fG7HnPrxVxmssdzwAsJ3UnIFwreyd6X/k6U48WNxkXzvBiuYdIKYESxF3YJX6DnIrRd9lo6cLYheHzULMsPLXQ6I3DvwxwzgL9V2YAJ5/+OFwoJ75My7nDOMBmb8JJrQLwcui+hqTKu5twjzPuAH8TMrG/CTvBF6v4C11bxxw5eX46ngtSRtcoJvB4yplpE2f/FmOPYL3L+CD3qyORN+AjeCJzNvWOeP9LPE+h0OT2u1uDTCs6gziD5VjbjVo3zJWoY/IbAVfao/W7HvnbmziRjljLnaMeEs/xt3le+QjslX8YQyhxL87nGmM0xyHjkTijjlLUX3JOygofCc90Bz837TXPNLwtZkTGU7IsXa40vMlZpa7Neq+YgeiaAcRWcETw2+RSh7cnhf4ROCWy3cqAJbOS30QuMfGlP9on0YZ6F0rac1fbzvAHeGDk3TDpoygoEPnK3krKV6Ff4efv9LQFcTB7IxBHZL+Yd3MR3uQcJPB4xtjvgquCm3MdkbCYNkLNAygi/IPXTwwcm4Z62D08dC4ge4glgFuh713nOQRmrtCH3Eakn57iM19yfgo8EIbTDKQc654J8UoNPXeE3TR5K+j3M/utO9JyM5R3UIxainoa34IXQdk/2Zi9w1aRXgjeypoKX0nYX9pzQP4Hx7DKIkdc72M8FKSPrKuNYAmx76zUSHOCxt33/yzrK30PYf9UBrsBF2pT5f4X2J2MyM2ncpB2S306PT/ahtC1zKKN5PRmTzF1gKd/7OXvH8qkB37uVvSB4IeXPwpN6gLceul4axhcCoZnCBpP1NvvKB8yjKZeYvZ4VGbbARMZXlH3en/NxGGtkwtsuy2BQeUH0AfBdv+CJhJ8RnItiHeV8l/HKWSTrZd5ZpJ9QznLZH9LOOzwymzIlmY/9rgnumeXvaN47J40/03A8w5o25FybCqxqat6/JnMUeArtSHjHE3ycDN8ylw7TM79Uk//RW5wo2NvDaNZOd2XsMtZeIPBV7suxnMnm/UFogLRl0kzzvmfivvS1n7PKvKPa7w28YhUaJmXkviJ9NQCx7rFPBSdNeLQFXji6sv/9ElxPwl3cG8/vclbLmERuI3u9NgAaovFhBTzjOk1P5D5qPw/hFyowAHNskiftC3zlHBQ6ZPbpyIRN2cVJaOYWXtre4M4puCx9peV8WYOX/7nkCX9l0ltZf2n3GHI0G3czUx5gwno5wDVpkLQtuCnf5ppImVT63m+eF1JXaKjsv53cNWR/idwsPQSrNDgn7Ymna/MMmMJeMdcO4277mEz6eATcGcF8ErYtfR5nIXphStQOPN2N10jpQ3BOcEFwWWAs/R/kxfJ7DePd4Nxy9rGsqcx9BfULsclfQOjNsUi+yAgFJvIt9LSepkM7wMlNnhaFwZdKTzsT9TmVVd+Rzf3cRPfnyN6Ve4LQOU/GKX1I+0KHzXNFZCMyblDtv/Gb4zBpsDnnG/DNJu8Tpmmp0ChZXxwqGXJj6PNyYNyfPSVjEjgLXkh/sm4Ce2l7EXgg92wMe+2/m+eyyDgFR4VPlTU3eUJTPp2Qv6rPZWmKhkG0NxZgvv94OKmz1YQPxKMHe0LwWtqUtZH+EvLG0t41zm9T1mC/E7D2DhwMsm8ENuZ9TuAsMjTh3TaAO8JDSxvhyALy44lPcFT+TnhWSvvmvULm/4BzIz0NJ6TNdp4xAe5Nlvsad75TfAiQYKdLsnZyN6tJwVTczQppmUshIiybdM++Dsh1b/LBkF7d1PiAU0g1DTiUp2/ZH+Z623lNYPcO4voGWLloup6ExXjBvjbvygKzhDIxGW8ItFdgLuMNx5vu1lR4fE4gIxK6LO3vZr/4wOiFcN6NAT8kEqGMux8wfgidEbySPt4wNvOeLH0ILAUfbpNvgV6F6/mZ9FzKPGXcXFXt4zPnbd5DpSzk7z95taz/Rw2PXsxvAHukJ4ghcJA1MGW0ImMSPhvjcBUL/e7F2E159hNn7p8QtjlM7jM0ZTX3CxMu0kYP9vxo8ELgJv2d1v0V1vtYzgApt0Pjp6yPnElPtd5DYCl7T8Z+nfPlB5+E904TVrJ+QiPk+6zuw7yDzuQMFXwz6Yl8Pwc/HxKJ36TTUk74RennAOXlbJH9+oQCJi8hY5mvx1mBO3lCWZ2dPnP+yJ4290VH+F45t2UtEtKPZAC/Tz+8Wugx2WCEZH9IGzi9tfd1hkVoBo2TcUhb0vcEGjPlKVLPPB/M/ZKCM3GCHt8XcEn4WVM2JmVkXWXNopjQDn2+7Wd++TT+iTzkLh+5Y0p5At8Ycn3NRwoPKN/h4B9OFOy/mfht3r/ld4GLKfsx714mf3pIxgU+mPoDyTPpbBx4JTyhlG8EojqwF9YxLh6+qdvQHnMdasIzLde0f59e64LIoEZy8EifAn+CdNrXtUhyi8rFR2iFnEHv2XPluUsL7yP1YsCDAgnooYz7tj7/6N6+dlf0Opj0xJSFCMytuqxJqwri9QIyYE+H6d8Ernf4fICmttH9yp1b2ttDRfM8lfZGcPabay59ldP0Z6Wer+xpoWPr9TqnYOxfaSOh/Pk1iG/yQIJvzvwu9wb5zZTf2u8HnLXmvIQ+pSNCTFf2Vx29tp30WEXebco8pb2KnGdbfPEyquEj9FPaFN2oHX6cr5nAffPeI20LvRBanRh5yVNoRGLOe6GHUl/wVGAv7dnPWvBrI2OOp42EcmC7vlHjDU4k7WeAiTvSv5zfUg6HmPa8ofCCO4hidJ9v837bE7wqyR3orK5v3rnkrJWz+zx0Zw0ytGp41TXPOJOPl/oyZlmbMZS7B1I/4ey+r2nWfT3/pdDBPRpvzbuu0FDpQ+ZrysMFP7tz7glfKPm/kBO845wTvOHxp52nlPncBA7pWcArnBWPdF8J9/41ZAmyv4Q/SrnI2FsyDrknyO892XMiLxAYVwd3WvAx5y0wHaZxaXQrB7WLPgTGsldOa7z9xJkSoXmcMmykcI0XafC4I3MReIhcTmCMs0o7/yl8gszRpHt2nl3DM4r9nxf5hNBic10aAtjE0F0/4N6buQptlN9+sVcP6vGd5PeZ4M1uuRcloC1vocXyxl/KCxwElgIDmQPOeux78ADjXk2f8rvgSln+lj6E/shZJGsh9F/qyJ6w44qpl8FzWUfohHjukjFLffOuYuJlHuSBU4hcYt4DpL7QBGnfxAEeKP3Hl0i97wzGDfmNyROK1xGZ5yLusNMZXxIWkOX4jz9LKBOQ9AY8rci5Kvx81wR3WTm3xmEoYb9v6X33DjjK/pXxyN1TcKEYLk8EjtJeBjZxBLoiZw3rq+xhk97KfHsySGlL9rLsa2k7obyio5Y9mTKImgl0XqadhClPNuvIGslvJs8rY5cyPtBo6Utkbjchwus5L0UfaJ6jJt4LrynrJThdgc9m887Gvdfk6z+h89mlYSOwtN8JEugp5O8F7I8g7uDrkN2Y/IDMU+TH0k9T1mEQDY5lE9VnQjI2gbHAR+qvBS/qUlHGI/PZD5E1eSeRTadhjeXslHYX6X0kNM/ENRmLL3SkEjzdI862poznG3uuOHRLfjd5D5Om2+ViGr42zavI3v/O3jBpSzbak3yTNzL5SOEZpT2h6TIeltkO10vcyRWRTNKC6xaxL2EOW8DpYLx73mCw7cDViXJIou+qz1xrwWTiCMpOp/ZCr4cxZkd9VoG+qjNjScK6CU236zCBXRx15C7DQ047HRVe5C6wEx2yzMvcJwKzj+BAV+RFBMe302nTzkLmcoaxmnTfLk/XOBwFYu6iX1kfKdsWgtsSPVIbxmzOX/aN0EWpJ3QWRwAqgHGZ93qhJ9toYwPr7Qk/8oezQPghU49t4p6pOxL6KO3J+ki/0obgkODPOCYpa3YGvi0eZA9DN3sEPVFt9lo18E3orJw5szlPhceSs3Ul/ZaCBgpuyZomtJswz2oZ42Lu4f7w6xzZ/+kNTNsXmYtdjwWQcHZrzxd+37SXMXlBU8Yn9MGEPQ951SR+FFoo7Q6bTbQhPYZCVBYYyDhHQQ8Haxx8wtqLjFXyTd6lKvr3VBrHRjJWoRkyV5Numnemp9gTCQ7Kev0GZxPaS8nvo7mLCWzkbzk/7TZYrFcdZPzf4SUkT+qG+6M7I/89e032rayH/d2Upusmr2nqEqVtk2dyAN4nwbddwNO0LemPEEDQXWBg02eIydtLmzdYP9HvtuBj6mKkXZMPlnuWwEHolfQlNFfw/hgbQmiZjGee1gGZ6yXju8zv1cEpHl2q7ppu3eP8HwRxERoq8PRlMWX9RJZRRa9BPujkdc1TSTvjWZNzFDL5c+lPcET6madpkPAt0r70L/TM3CPmfV3mK7iB43r7/eA55/ZV4CRyMuFBzDUROjaHCfZkXMvI6EanBSkreq9jfJZwzpjrbtd96PohlBUY4ojfvmekL8Ef+Za9Ie1/0GPcCT2szAazMq8K8Adlue/j+Ne+LiaPKHMVHJO2ZN0srGch9v5+DaOM7OX9yN4Snt0/wM0raZHZa9gIvZJ+MzGf6gnukeaZnZ1ORoFYz8FL4XFk7kJ/pE5l6IV5PnVjIVyxAStBwwTMUjhAsMufBDf6wOMLzyx1ZG/ZcV33cRTe2KTzoxlrNj32xzwNlO9UzL2ovtO4aXpr3pNNHZ6sdQqIsCmLtetEKYTDTHv/d9CNjARfFgNL01bRvCubOomEco2j2l7tGoPuQTQ62RcCq+S6/5MaTluw05AoYiI/FNmhuReknXvgZiXW8A9nShpkVXt0nazki17Ufr6BKyf5mPZtj4AnwTrsY+rLxMoB09SsSyL4vZPgmpf+Te5Sst4B/C2484P1KQuvN4Xzw9z7AZxRUUy2MxlCF2T8iTRsDzCuupp3KLzSQZ2CtgkuyXqYMjTpR3SEgrezGYfYWAjuJZR1mPZoMvYGen6Xwb9WOv0d/BvPeTScvfFb593n8Kig4Sg8i+zDR9qGJCGt/IEcpSJ3vW/UbU//FcBb5+oOKhYZUzbMixPqVk0bvj5cRE9zvmZlcUfKpoDQ/ganTBq7jfYIfqHu8aknMhoAI/MVGlNPw0b4FlkbgaPA7C6w2Qd/IDCXv2X/C88zTmw20X1cZl+cY43l7iwwy8r8TdyWscncBG6T6UsCjcpd4bKW6+VmX5SFfgeCZz/Q/wh/KOsq56ucp4IXAp9nYu+ArVYLPu7YVJhzv809fQpt/JiJTEqvuy9nr+C2zCkQ3JE2pC2xETB1c9JmCDCVe7vM6Q8VPBn3d/aanE2yxz/p9TrBHd7ECfs5oX+3AJB8THSBhtsU+jX1GwKH9sy3jcYxOS9kPKauX/o0z2/BH7v+Uuis3pMfNS8n4+6k209Iq+1yA32utwd+0WxQuSfKeGV+0pfcjQUvZR1lvi2wE/rIOj3jbDmg5bdd2B+TmbPAW8rKPhb9zUHk64Iz0n5nfhSZVkL5k+CnKbM37XTMcTVhf9/Xay4wlzLXIe7C/8rczfuQzNPUOxQE6JHwwSITxyGCms/CmLysKTeW9g9y3tfQvH8VzoOt7ANpz7xrmvaMcr4JTBtp+DfTsDHthV8DPPOuY9I/c/xXdFm5o0sbh4kKfVB4HeiPBdiZ+mO5Xwse1MJ2yTxzZU5l+WMiuh7hhaSceT4InMazGEJ/hc/rDyJ90fy7/L2KPbYtgS2FzGNvAhtzU/Ypa1kU+nVIj9O8v5hyOLOs4IHgz0uRf+l7puCu7N3c+nwfAkBMOZ3Ux9GznZ6avHF5Fj6U+smAdWpdx7Sl/QLxcoCxER5Y6q/S47nJWtaASJg8ksBVZHMCiyC9HtP53eQbJX81sC2TxEF95u5m6mbXa3mK2AtKu6HgpMw1oW4mod484fm1D3oiZQWuMhcZ3zb2SBg83KUEcBNYdoQX30qkiCcaFz2A7WDgInRDYDGVAVWB/oyivinfkvFl4qwydWVj9LqZ8k/B29nAzPxbxpnQniOLhqWp6zR504TyhRjOvIbQ64t0aspN5jFoOTME/ibNl7ZT6vaysYcSI5+fyZ2jD7gVynk/H526Kc+qxbwywrzImstdOwl//8LtqckLCJzMccgYzPuHjMnUFw2DHpryC/lN7B8Fblmgd1k03+PLPXY4dCWVHpeMWfaSa2FeoumzLz+2CWJ/YLepdHNQWSDgR5BhSDnxfurMGkn/wvO6wK8LDZI+ZV1kXU25y2/omglnGWcgfJB5RsscTJ5I9sJbdDQR4GdCGwwpcwjG7ojGC7azfa1MfZ2MT2ip0GzpW77TA7NLAO2BxutnnEG32Fw7gXeMziNInx3XTV2GeSeQ+uYdfx9jiUbvK2cywTj+OzdlrBWgUY30mGTusj4bad8Z79TZE8kzc/Ai3gFYGOka4GB+0vLCpiD3p+Kk7S9qsDWspMuU4wF+VV2mKxl1dboNntKb6jLdvnM31OnytNNWt1OGvnrq/DaMta+uu4cyAaRFdOJOepIun4p25unyBD5Vi3T5KDKCdDoP/2zU6VA+O3W6O3M8qOuWps1gnT+S8Z/R7fclP1Sn3zP++7r8DcZp1Wl/xhCp08lpIFq3k5r23+j8xeLtW6cDKB+n09voK163/0Z4h8RG3WK0705ayhQhw5O0fTzUzaDz29NmZp1+STvZdd1BpPPrtDdjLq7LdGUuvrodHM6pqjofR/qqpi5fl/Yb6vwcsl46XUjWS6fjZb10+cHgXledTkm/fXX7hSk/XJcPIT1ap8tSd7wus570LNKypl/pK0iXOUf+Wl3mMnDYqfNPMN+9Ol1R1k6nj1I3WKcHM4YTejyrKEM8VXt+Y8pc0ekO5IfqdEfwPkyXr0Vf93U+wZKUVecHMf5onZ+Hf2J0fhdZU51/hrpxOr1Q1tSECVFScOttz6/yk/UlLfl3GY+7zm9IO546vYO+vHXagbppdFoe32XQdRGPq+w6vVXWmrTAqitpX51eRJtVdd10wLOmzn/N/m2q6w5m7m11+h7lu+ry5RlDT52OJN1Xp/2Zo79OP4E3CtB1t9H+aN1+IdqZpsu4UneWTpeSfarTlWlnkU6PYQzLdDsfGP9a3U4w6Z06vy/pgzodQvsndN1RtHlGp38Dzws63Z/2r+h0atKhOl2W8mE6TVA5bJiNvo5xB400YcJcYnS6NXeIDzr9RNZUl/9Km4mTGO3kpk1nnQ6jrjtpKT9E1lHn5+CfNDq/IO1kJi3t4Bhd5ddlOiMfK6zzp7NG5XR5f9JVdToD7dfVZWqDSy11fnba7GimhX7qNp1k7XS6haydTntQPkCXry1rp9v8TvlpukwdWTudbkT5eboMTtxVkK5bkvyNOn1YomDo8nGU2avz59FvsM4fRZkTOp2a9BmdniN237r8Y/oN1fkNqBum0ysYZwRpoRUngFW0Ln8TmdMbnc4idFWXfyHrpfPX0Je53w9RRjnp84J0Yp3eQ3ln0nbaSNqbtLGODiqDLrOfMWTWZbLKvtNlYkkX1/lxpCuZdWXf6XQEDTTU6WLgVUuddpa103WHQEv76vwFzD1A95ueMsN1Pm5z1Xid/kGZabpMSfBhls5vwbwW6fzclFmm07VpJ0iXqcc+2qjzCbiltur8eOru1fnPqHtQp/3gpYJ1mZfkn9H5BDNSF3T+WoGzzt8me02nT9JXhE6/Jv++Tq8n36rTQ0lH6vRgobc6XZkxx+j2JeDBB53eCmzjNdwWArfEzkb+A9pxJy11rzMeT51uKWuqy4TJmur8uXKG6nRj+s2u0/3Iz63TNYFtfl03BXMvrvMRFStfnX+A/Eo6vz3rW1XnT6Dfujo9n/ab6jKlKd9Sp6dRpq0uEyx0WOcT0FH1JG2n27JndfoB7YzXZa4KL6Tr1mdes3R+NdqZp9NJKLNI1/WgzFqdHwoPvVHXjabMTp0+L2erLpNL+CJd14V+L+j8a3yu6PKNKBOm08upe1+XqSJnqM5PRr/R5nxpJ0anW5H/RqeHk/9Bp+cw3zhd14WMXzqdhPzELkY6o/BIpO17k3xP0jLOm6Qz6DKewhfpdE3Zszr9WNZR1/WRc9OsK+emzt/K2Grq9BDK19XpH8Ij6XRdzq+mus16lG+r889TpqNOXyC/q05L1JeeOr2B/L46PYm0v07XQf4UoNtsJ/RZj20HZabpMh8ZzyydPiv0WZcJpt8gnS/Ecq1u5ylltuoyk2jzIGmhpcXhsS/oMjNk/+q6wzl3wnR+Fure1+mB5Efq9E85K3X6BHD4oNOJ4FvidTuOlPml+40WGutqlFnP+D1J293nyFmp0+uATxqd7iM8jy5/EpqfnbS004vyhXWZ5MLf6vRg2vTV6W7kl9Pp63wq6XZKUKamznegnbo6XZRxNtTtNxf+Vqfj5TzVZS7KearTl5mLvy4zVvhbnV8fWjFe95VMzlOdnw150yydHyr8j84vKPRZpzvJnUWXGcT4N+p8L8azVfe1hDYP6nwCw/639zeTH6zzA0SeqNu5I/RZ193JmMN0OoB1tOoyj2g/WqcHUveNTq8mP4604Ekf0ondjLrThK6Slr42Mn5vna7JGNLo9Fu5p+j0MaGxOn2TdrKTlvZfiV81nS4sd0mdnkq6HGnpt6eska5bh74a6vQmoaU6XZ7xtNTpg8LT6naOUqarzi9Jmz31+P/K/HWZFODqaF3muNxNdH5m2Ws6P5Dxz9LpKpyD88xx0v4ynW8Tvkjn75E7tE73Fb5IlxlDeq9Op+THg7pMXXDmhE7PEhprwhP6fEXnTxZeSOePkPNUp6fK3tRlBtJ+pM4nqL2K1vn5hcbq/ANyZ9Hpi8AqTpfxlH2q01Mok9hd3yv5x5m05K+TPavzW1PGW6dvUDeNLpM3G7DT+V3pN7tOF2NeuXXal/z8Oj2INgvrdEPBAd2OG+tSTuf7AJ9KOp+gqURJNdKBQod1mSjaaarTJ4FJS7Md4a90ugzt9NTpzrJ/dboddYfruvWZ12idzir4QNouZ2A8s3R+M8rP0+m5zGWRTn8mvUynB1A3SNcdJ7RX93WLunt1mTVyzur0B/4J1mU2ivxB161LfqjO30x+hM6/Kmut6y6Q/Uva7iWUfPOO00X4YV3GkXS8Ts+i3186HcZ4lIe+w8q663R/6IMzaen3Eu176vReWWudXiQRkHW6Iv3m1nU9aTO/Tr9nUIV1mYcif9DprsIv6TLV+Keqzm9GO3V1/gmhyTr/MGNrqfM7Cr+k83vTTledH4Juu6fOfy13J50mIKUartM7wfnxOl1L9riui2m7mqXz7wh91vk5SJt8aVpwYJnOjxFarcu/BVYbdbqCyCt0mRuy33V6itBtnb4mPJUun5aMMzr9QngqnSa4nQrT6VMil9B1s4ncSafXCs+s0zbyo3X6/9g6F7irpq2N7+6pV6ULSQghXUhCiNNLCHWEUIRK7rcQkhDihFCE3EMIRci1EEJURFEUopCEkE++03G+5z/nM9qL31e/td9njz3mfYwxxxxzrrVqMy87bRXF5VabPgd5ML5J/GuNN0T3hZGrtszR9XLa7cTfQDitAdF34ynYeeMjVM/m5h+Mr2V8ETpunsvRceMWrJXMc63y6Wz6hfrosp6uOdr0jtLZ7qY3UP/3Mv1s4lHGLzJfm+dz1WegcT3xn2megeIfZHwZayvjb8U/xPx/ij7c9A/1McL0SuJU0S7hsO0T8KtFR+9uYD3ltDcxX5t+O7Ep07/Xx3Tnc6j6YaZwWr+wVjLPvdh24+nYdvO/ihyaPpv1kfEC0VcYXyE5XBVtx382Pk78sf56SPzrzK8XectJyTw9Ra8tDH07/Grj85AB421ZQ5n/dcbd+HDxtzTPq/LTWgnTLr2QrdTRuJ74u5ifJ6x1M/6OOd1p+zCnR1nqw95OuzNrItNbsiZy2o6iDzL9FPXzYGO92L80xDyDseHGDdB381zPnG68DP/ZZY1ijWz+yeyPOP7TlvE1/4uq80Tju1TnScYr0A2nvRh7blySHM4wz8HEqYyPV1/NMs90LW7nGevF5qVFxm8x7uY/Tevc5aZPU9pVxvX14xrjE1X/dcbzmU/drufw3xpk+mzGV5g82+DLGT8q3Nj4GvYRLecniN7U9IWMu/M5Al9OmPw3UbntjWvhe5t/uHAX44PVV12Nb0Te1seCJA+mj2KdZbwB9t9lNWG9bPq7rLOMh8me9zPPH6KfanoVjdeZxjX1Mcg8rxJLcT07sXY2/W7WzuZfIfpo038T/zjjdqrDePPw3OMJpi8mVuk8X1e5L5hnqfRxunnuUZ4zhbEJT6qsBeZ5UPRFpn9ArMP5XKixXuO0y9BZ88/hnomNMr2XcG1h+G9gDSWc9l+IN5rnWmJW5tmVOIbp9Vj/mv9frJuM66j+nY03Y+yM9VL1Ulen/ZGYhvPsy0soTf+38uln/mXYXNOrqA5nGl+s8RpsPFj5DzP/ldhe47tEH2FcoT4caf4L0FPjA1TPcebZmr0D45eU/3jzzFWfTDS9N2e9TK+B32X609hn40nin258mXhmGLdj7NzeU/DDTR9FTFKYsbsUm2z6hYyjy1oj/tWmb6e2rDH9UvTUeBZ+V0PP6fjbwunRk/jbpl+nshoLU1Yj5lnztFHatuZ5k3nWeEvWxcbni6eTsV5mXOrstOPQR9N7oIPGH4m/u3EbfGzjI/CxjcfhYzuf68Tfz/TTCvF5bcOWBopOvy1T/QcZNySmYfw2NtlpK9U/o5xnA+Uz1vQnWWcZDxf9buOvRB9v/APzstNux5rL9PewyaZvqY8XjG9mfM1zEvtExi8pn1nmGc+8bHo1xtp1PkG2d6l5XlHaiCVWMheb/ynxrzLPpuwNmX48frjxb8LrjBuj141y/sPYnxYm7R7Muab/zt6B6R8QnxQmbVOlbWv60bIbHY27MdbGE9QnXc1/NPt9pl/NPRLGa6QjvY1HM6bmP5D4lfHF7A0Zf66PM1231orDDzF9OXoddVOdhzvP74lXm/4lPpXpK1lDma7jvaVxpuvFrqXxxmfhU7msLUWfanpn9hSc9hD2FIx/IO5h/pWsc8w/ivOpxhX4z+bvpY/lpm/D2Dnt3cSZhdG7Ydjbxl4LsyYShqeSeKPpP+ALCSd/jDWR8bn6aGuejfGBnbYFfq/pc9kvMG6itD2ddlf8IuMpxDqMd2ceNO5AvNH4Lo3FQOdzlupzpumHMQ+a3oV50HhX9hSMF4o+0nX7mv1007fTsxnuNu6hPCc4z73UhxONOxJDdtob2PcxfQ5jZFyTMTIeh94ZVxE94tX/lBzOclm3EbMy7kds2fwDCnvBb7AmMl2h09JS87+LHTa+Wni18Z0qa635TyC2bPrv7Os1cT7y2WobVyhthTA8P6Orxt3ZRzDPpur/FsYvYZ/N04E51/gBxt34DOZZ8zcv2P+tWBebvoR1sTD9+TR22PR/Ig/GOyAPxnVZB5n/eJ6P4bKGEOswfS/Fr4aZfgFrHOPmwqOMr0Qfnef+2F7j85lnjfdUnccbzyXe5bQfYXtNP4W9JON6KneqeeYzR5i+G3tJxu2IfRkfgh12nQ9iTWT6tYV9/4nsJZm+ufAS42r4zMbbq+3LXW4n8awy/W7iYOvHTvbZ+CP2DV3ufsjDxpl+Nfu8xsOEK4xfYo421oOTS42FKeslZMP0tdht068TbmV8rNrYXpiyeuIzm/8ibIJ5zlQ9u5n+FTJn+rXKp5fxYPH0NU8f5dnP9IXIgPEg1krmqZRMDjb9YtV/mOnP44MZL1YbRxi3VOx6pPlL7OObfo4+xpp+O/Eu4fSuYmTAPEcRAzHeghiI8WP4XcZPsi52Pm1Vt5nuk5PRfeNq4l9i/hOJfRmvJO5hvBFxD+fzjPBq4x2w4cZTeDnIJt7HZ79eGPo61j7Caf0onqbm2YM9QdM/ZH4yf1fVs73xLPxn86xgHI13Uf5dnM9uxLFNX8W6xmkfI45h+u6Mo/H2yqef8aX6GGj+QZyxMe7Gmtc8F2qsh5jeS/Thpj8gf2CE6bXQceMNiHGZZzfilsZPsP51nfWyudJE06uwxnHazdg/Ms8O6K959GDq0kzzbMEZG9OPJyZp3JZYhHFD4hvm/4gzVKbvwV6hcSP2Co33ZV52ubzraK3TbsSeflP3FTpr/ATztTAyeaDoTU1vznwtTD5biNBKOO3Poo+m9+EMuen1RO9q+q1K29P01the56lbPUp9Tf+EmKTpjViTGuvoaelM88zmjLvxEvaPzNOO/SOXpSPopVHGO2KHzfMNe3zGN3JWym2sSWzZ9BHYSeOpzMXGs5mLjY8j9ug6fKN2zTI+G70zbseca/7fJWNLTL+I9Y7pM8WzwpihWGWeu/F7Ta/NnGu8DL/X+Cv83k1zG39grhUm7U7YUuMfiDkYL2BPQTidldJ9661M/0b09qZfrXVER9MPZp41/WLOZrisXmpLd/McK55e5vlVZfU2/WnWs6ZfwvrC88hQ4YHm6Ys+Os/BxJ1M74hPZbxYeKR5HiFmKMx4bSgfY4Lzv58zGOafK/9tivEhyv8F4wolmmE8hf1fx4XaFfZ3FnL2yXn+m7M0xkNYtxpvogwWOJ/nlf8S120W9sv0jQux5a+U/2qn3VZzwRrzfInv5LQnsW5tlumt2Is3fp79AuHkExIvEqbtvxB/EM7ncCSfjm+M5Iyz0/bBFzLPVcJdjffBT3aekznPZv7jxdPXPM9iP42/JRZhntMZL+NbOVPq+nxKzMH8l+ADO//G2EnTX0UHjUdjJ53PY8SCzH+F7O0U039mT9b8O3Mu0fShnKt0f55MPNA8HRk74zXs+5h/MmtP13M/9npc1lX4MOY/EV0zvp75zvxfMC6bZf7qxPCFUwxNezdNhZNvrzFtYdxAH62MHyaeYP7NJKsdjYcUzjCcoPMDncy/iHiReR7iDLDL/UxnBXsaz2N/1vyDub/B/C9gJ42vYc1iPAbf1fyfUrbxSHwV8xwmPMJ4AGtM4zryOUeZfzlnokyvyTgan8o4um7XsMYUpt+2IkbnOPmBjKP5PxHPdOe5lLEzvR9jZ/yD8pzjPP9Dv5i/PTplngnCy43vVz4rjJuiy8bHqW9XO+0HxA1Mn4b9NJ6LP9M8/HaNtXCKNeHbCFOHb4gHmqcue/HmOQvfxng+92uY5wTmQafdlz0a82yJ/TTPEo1pN+N/c7bN/JexN2f6APwW4z807mcaP6E8BzvP2zknbDwNX9T4E2I95n9F8ZaRzv8QzY9jTR/KWRHPIx8zJzptPeJCxm/S1+b/DL/U9BvxS42PYK40foexNq5QfaYbV1WfzHAd6ksX5pj+ltLOMz6eM6Uu69Xi2WDmTdPnsy9vfB7+jPGTxAaNPxD/OuPd8Wc2z/nchvz43HgP9Fr0FEskFmG8DXtz5l/NGQzj+sSBhdP5Mc5BGf/IushpX1e5XYx/w780Hk0swvkMUT69TF/F/Gd8GjEi84zjzIzxs9hbl3Uk86P5x+KjmqeeCCNMf5J5zfSP9THaab9S/9xtnqs5G2Oeq9FZYXT2FcbO9JnYW6d9g7PfpndFN53PKdhV83yO/2meh/A/jVeypjD/L8yDpq/jbIzpR6vwdcYbspbfwusF8dc2bsv99MKUtRljZHpPfFHTH1OerYTTG6ckY53MM4LzwMLp/CfzoOntlbab6ReypjA+m5i88dfEhcw/ibP6pk/Cxpp+vOzMINNnaQ99iHFPVWS48afCI40/Y3/E+DjRxxkvYi3gOMaVxAec//fimWCeKSJMMv6QdYTbPonnGZi+FF/U9IbolOmbEedxnocxXsadWOObf0k6R+4YFz6neVrhq5j+T3RqS5+RZh/KeIn6oUIYnp3ZTzF9XYqxel1JnMf0O+V/tjT9aelOW+OL2Jvwfuvr+Dnmb6X6dDJeQOzS/PPUP12Nd9T9192Nj2eNbzyVtaHTNmVMjT9WuQPNcyrnCU3fkv1u4w04OypM/+zC+sL8R+HnGFdjXW/+eaKPNf941hfGnZV2kvmXUyfjr1lTOO0NnF0xvb34Zxm/LbmaZ7yE+2jM3xfbaHptYrDGT6jfVplnJGt512Ga0q4zvTtzX4tM31tzfYVwWndoXBobf6p5qrnxJOlRS+MW7JsIp/MPnCc0rs6eqfPcWvQupu/OGtD0u5Q27qkZKdzTPP9gvJz/KcyD5l+HPTTPAuyh6b+rLUNMn0TM3PgP9M75DFD/jDTWqwtLo40/Vn3GGb/MfOe0q4nNGu/PuSPzvMd+qPdbHxWOuMFl+phinnXsWRtXZX/E+WxPXM74DXTT9Ydxgfn/QfzNPFsSfzPej3Wi8U3EY82/G2e5jf8QXmv8AAvIrTL/ZPTUuCG+jfHjnEt3/z+OnyM6NnN3bKkw+cyQT9vS+BNi78LUeThnfU2vxZkE4zeJszn//pxBMv6Ouc+4K887MX8n9NH0XVlrGL+ucgeapxX7nsbnooPGZ7DeN/+vnOU2HsQaJPJBtszfA3vr+v+Bv2p6e8ba/K8q7UTjHVW3ScafSn6mmP9Pxtd4DffOmOcLzgCb3k++1hyXdQbxGdO7FeKlz4m+1Dwno6fOpw4xdvOfyvki06fjr0bdZBNKW3uuIT5j/C3nTITT2Uhsr/F9zJXGn6ktzc1/OmtJ4WQTVLf25mmqj47mWUUsznRezdbF9F+YN43PQ3/NsxH6a3p32Y2+xuNY77usi2VDBpneF/112mbor/Fe7HmZZ4bs3kjjYzg3aJ73tMYfa/p/8V1Nn8/+tenncs7E9DeS/fL8K7mdalyVcq0LxypmNd30mzlfZHwS9zC6/muYp01fyRzq/Beip8bdWUfbPuyEzjrtoeqrNeYZxdxq3IfzhMat0d9trJvc6yucfEti5qavUh82MP1WzpaYvgh/1fg55lnjL9lPEU7nDRhr039TP3R0Phuz12m8J2tP4wM5P2Z8M+tup72B2J1xM330NU8LYnemf8eZYdNrF+6lOqEQs/1AdRhknhPYUzOej60xPg0bbtyVfS7n35U1qfH9rEmN53G20Px3EXcSTm/Rk0841TxnEDMx3pw1qfuHN7POctoTpcvzTP8Nm+y1wyPEfEx/nbWn85nN/apRH3TZ+Zyj8Vpr/CDnRVv6DDz3Txn3xY8yPpr9MuF0LwnnFox/EW4unO515Z5i8zfVj23Nc5L6qqOxHkFS6mw8rHAe4C7G1/QN9NHd+A72xZznB5wfM30HzgAb1yHOYJ5f2F8x/SjWpKZ/jl4bb6C2DzPPtuyJmP4pMT23pXEhLrQP9TTPO5wdctpN2Ms2/pM1vvu5LesX51Odec1pDyfuZ/pBqsNMp92GuJDx+/jGxl2VzxLz78U9qqZvr4/VxvOZZ9f3lT63dfyQe2qEU3yAs2Gmd2Fvy7gq5xDMM4BxFE5nitjPMv1g2cz2xo9ordHJeHPiQs7nGMbO9H2ZZ01/QuPe0/QjOVti3E8/9jN+jXnF+EPuZ3TaLdgHMd6LsTN+RvkMcz03ZP3itJdzb5R5tia+ZzyTezGMv8QmG+uxAaXxTqukpYnG7xNDMM8jjJ3x7syz5pnMPGv6FOIMvkdjhnRzpus2lXMm5tlD9VzgtE9ojlhi3JE1jrGSllYZb4tNdtpe6K/30B8TXmv6O9hn4/ro73aeL/CvjJ/CvzIeIBzn81uzbhU9jTWxXOPh+NLCaY+es75Ou1If7U2/j30x08er/p1Nv5NzR6YvYi52ni2ILZhnAc/ZM/6YM73GfQu6Vg1f2vQByIDz3Fx2cojxfsyPxtcTczB+BF02riH+kcYf4vd67XY7sQjTa4tntPET7I8bd2XvwH01Hfkx/XT2yo0ncm7QeC4+m/GWmpsmuv7Xs3dj+kbIknFN7rs0z0/EoEy/Qzwzjfci9mh8IPEN89dlnRX307GHbp4q7Jsbt2YuMP8dyJhxJXvl5vma9Zfp/SV8az1evbH/23uPGPkxPqcwl82XP1whejrLig0RTnF74pDmX6iPlqZfwTlS8+/LuTXzXM0+jvFs4pDm2Ymz4qavY4/V+En8OuNzuc/UcYDRyJjL+gz7Evlwb4jxGPbKnXYqfrv52+OrWH9Pxm83z/ecD/S9xq8VzpKdw5lV+wn3IG/m35Mzb8ZNua/E+DDWd67D4azvXO5s+ZATjPXYzNIU87TDzhg/yLrbuLPKmuU8X8H3M/4Pdsa4S+H880aqwwLTP2a/z3g1e+7Gx7Dnbtyc+Jjx3viHLncoZx1N/4L4mOnX4f+b3hP/sJXPk+ijunDaS2UdJ5ziY5zt8Z7+x+zFmz6EvT+nvZyzVcY/sb5zPidxxsb8erVfqYvp3bjvz/z/5ZkkpjfTRy/jGdgX48XsGRm/x7OFIr7HHq7pA3n2sstqI1sdceYD2JtwWTXwuxyr78N5G6f9mfPG5unC+s703uzFm/4NZypMf4Lz56ZfINs70fQm9JXprxFPM/0j7JHxPGQyeCRjs0y/kH150zfl3iLTz8XOOFZ2H36F6PifzVnrRbvwD82/HXON6ZO4l8T81+FL7GCfihi1cDorwpgaX4+fb56NOTtn/D3ja3wW8WrzNyzo5lOccTXPftgK49bYCuOvWOM77W+cezQ+jn184XQGlXNTxiV8fvOcwz25zqczcX7v2d3DXGP6x9w7ZjyIc61Ou5a1vOkb4iuafoDszGjjV/APXe4t3OPgvYwZ6pMJTttd+3QTzX+08p9i/nd535jpw1jrGW9duNfyV3Tf9DaMr/EqYjXOvzpredNflM+2wngp8RmXVUHMzfzdeBt+a8e45LPVNn6L+wiEU7ncE2rclr0n8zxa8JH2Fm5hnkHYf/N05flCxgtUz47muQdfwliv5yp1Ns8F3K9t+sHouPHPnFEXpv798SfNf6f0tJ/xJ5yPMq6qj0HGLdVvQ5x2O/GPcJ7VebeHeXZWzGS08anEe82zD36j8UWs5c1TyVka08/hLI3py+kT0//BOQ3jnziLbnwhPqTxW8TijG/nXkWv/afp/pFZznNj9No8d7DH4bYsUH2WmqcD6z7zHCIZW2W6XiFVWmNcoY91xntiq9tYtpVPhXFvxlo4nX3ijI1xL9byxiWV1cK4ueaalsZdpAutnM9p7Dkav13oz4uI15n+HjEc446cV3c+hzLvG6+U/PQ0TwvW6aav4ayscRvOyAmneA4xc9PPZE1hvAXzvvPpKsIw46/ZazbPROye/YqxrPHNM5/7FJx/R/xA81dio+wPzCJma/pd+ITGY4nZOp+rhKcYv8belnn6sd43vRm23fR/s89lPIt7+Y2P0/jOM//PsoeLjF9mTjfPUGLvpl/MvqTxu/SdcSPuQzH/zpzbaZvpw1n7Cyc/UP1fYfoSPVu2sfF/xdPcPDtpj6OF6buyT+SzHxXydVuZfgR+oDB9+CJrB9P7sXZwPk9xPsGx5RWsI8x/M3EA86zlPI/TPkyc1vTaxHmM5xOfNz6dM+3m74EMOM/buI9MmHltmp4XNNo8v+PrOu2bjLVxXdb75mmodk00foV4rPG/iOGY/0L2mo3bSC9mmOdx5jL7Qgs5E+v63Cv+BebfA5/NuJb0a4nxj/gexlNU7nLneSvzuOnLsPNRN9mQtcbvo7ftvJZX/rWFU5xHHVBh+jvovulN2Ys3/hTdN74K3TceU3imzb2cPTC9mvJs5TwrWD8aXyh6J+NreQei72n9gnNBTlsL+2/8PDF842Ox/057I/Jg+iXcR2x8SmHtfIB4+pq+FTEHpz2gcO9Ddcn2qaZfih9i/h686930DXiegOmbi2e4MWHvEebpzL0PwozjUJ5/Zfrh6IL591CCCaZfybl6YWRvO/a1Te+ptDONz0bfnfYYnmlm+iaqz6KgM+8bzyf2a/wnsmH+k5AN07tIbleb3lAfa4170JgdvW4ihi+cnt1H3F443QNO3N74IOTBeFP8E+OneMag8Tb4e8b9uX/ceBjn+oxPZG/OZXXjbK3rsH/B336PecH8L3Ifk/GBrAeNH+M+JmMCOnHf62jmC9NHEAM3PpX5wmU9T/zQ9Dk8n9D0DdhTM30JPqHxInxC85wl+RlhvEyDOcq4D/utxtW4v8lpb+FZPcZjCzpbRx8TzH8i++nGXThfbf7DsC3Gt2FbjH/knIDvc6nJfamm98KHdD6nc27Q9BmcBXWf76VxX2KepZy7Ns9u2ndYYfpszTWrjaezR2Ce04lBGW/PPOs+P5KA2k7e9yQeZbw351uEyed/OE9orFe/lZoaX4EPaf7uuvGjpekvID+m98evMH0g86/pr7A3ZPwD8UnjXYhPmr8K96KafihnnEwfipyYPot9XtN/JE5lXIt1ovGtxJbNfz17BKbfgtw6xjKCeIJ53idWYFyPWIFxLaUd5bT/K50da/x04fzqYuYg8+/J3r1wihuwZ+37EA/C/3Tas8Q/1fyPIDPGy7h31Twv4XOa3oQ5yHkuZg4yva9s4CLzLxXPUuPTiA+Y/1juUzb9Ot4n6OfMdCg863ILfE7z/El8qb3vK0QehJPusNYw/T1iSqYPUJ2bG49lf1AYm/krMQHT53GezWlfZh4xXsKzmM2j6V3PdfK5C2LU9tlGsD9oeiPOexv/wnNmnE8z7o8z7l94ltdN3Evu5yOtYC/JPEPUb4OcT1fshunPoi8+51CDGGbwc67Y/McVnv/ZWro50vTnOcth/v/lvLHpJyj/u01fi39i+tnsQQgzRt8SQzCeShzAeDDPUXTaTiprntOuxp80/g/+hnk6EEs0/XHhVc7nzoIdPkj5rDXPh8SFdo7na8kOGG+t+GFt4XQWmudkmn5UIX44Bxkwz/7sTQhTVk3ukTT/IdqbaGueReiC6ZdxJsf4S+Zm83yGHXA+c9F90w/XePU2Pop7z43nFOzbMTyjwPSjiSE4/0X6GOw8Z+JPGk/RR9wb+47yHOW09bi/xriKbPXdzuc/6LXxcGIFxg8Xnjf7GucBTJ9JXMb51OdZmsafMy+Y5wh0yvft/kQs0XV7kPs4zHMtZ8iNl7BP4XxOJkZk/pasK83zPmt2xw3OY8/C/Btwv5V5HuRcq3F1zmiZZwwy0MHxdp5FI5zWI8SRjM/FxzDPPxh34XQ+kzPM5jmKNYJ5nmNv0fQ/uO/e8+BTrC+cthZny42noe/mv5f1o/Ppp/r0M/0Axtr4v4V9vR04U2d6c864Ou0OrOXjnl/2p1zWRexPmb8q5x6NS+wpOO0D2HbjZpKH8cbHqKwJ5n+bsTa+HH8g6oxtN27D/VbRLnxI42OZ982zIzEE4yOJIbieH6qeS81/D/Ei47E8u8/8/+TZI+bvzH7TLo6DMb8bV3I20vhU7ncWTnqntjQ2HsR5D+PvWC+YfykhZNMfYn4Xxs4/jE9oPAk7Y/5/4VfHXo8+ejkthL7Gu/DcSPskr7E2dNofsefGb3OG2fzV9DHY+CLOLZtnPntMxvvIvo0wTy/2kkzfiXMgxnqMemmseeoSOzJ9GHtGxhPQceM3iQ8I07dzeJer1+YPsbdonv/BB3KeX0pWZxh/xdktp53JfVjm/5RzPqbvjT/mPeg63Gtg+gKe6+v7QfpyLt15/s69BuY5o/Aspg/QX+OrePZIx3jOs8ZXOO3Psp9ifBVrBOOfiN0Ik/9NPDfM9KOI85venbWAcNqHUn26mP4b+0Hm/4S523jngo/xI2e6TL+TtYDxkfh1xo2lX32N69Auy8ZBrAVcVlviBubZnziS8Tjsm+1wM+5fMH9r5nfz7MOcbtxOPw53W65gbWj8IfFh4604B+J8FnKO3WknEyMyz848R848n7I/aJ6+PEfO9G/Ra9Orc4+DcR/14SLz9OYeauN3eaaBeWprPbjK9Mm0MdrCPbOmd0Lfd/U4ou/GP+K/CafYDme9TN9Bz4trbNy/cM9pT+LG5u/NXG+eAzgLZPqOyIPxpsiDcRvuhfGebAXPkXPaJewbCqc5nbWAY3fj8fPNM5z1kXlW4dsbf8m6zzzPcXba+BaeayGMbF+D7pv+gmzFCNfnMmUwKujs9Zj+DrJifA3PvjY+unBO4LjCvZPtuUfMPLtw9sB5NsSHN16sirxgnhnca296dXx442bsFxuvFP8c8z/Bs/X8fN39ZNsXmL6G+d39sA3+vOkf4/8ZP8t5P+d5CXFC49mSq9JuPgPGs8WE03PtuBdJOJ114Z2f5vkA3Tduyhkh89hc423ovUJz9PqCZSW9DiI9iKeGgtbVShv5CZq8UYVfLtXzOCa/Vap7f9U6esLx5qUrSg2S1W6IRusdCFVLW+vbUH1vlN5cQiq9qDKd3/hI8lc74Zp645BeE6Gym5Rqq8Uj9fagTUp6mVZ6rlwt0ZuWttPoJ9ksbaCcU1Q2/V6rtG1pz/T2H95MQUfsL1qFytm2dLtyrpW4NkzvxdlH3zUD610Vm4hCLevpf/5909Jmukj/SJ63iOuknRXFYsS1UX6DRKLTD41KdZWqirayquU5T6no80uEtFQvtU3cw0t6nQSvXdT7JiofmKKe0jPmO7P/JfYN0wt9NFyq5Mapok3T57ZMvSkJmWsqS4JP1/MClD3SbxRBRepnwVNushvpX0tRwI1SBSrHPaVCv6hGw/KQtVeq/K2KUK58WpAJbZ/oDdMv2yQuzWzpG+Xr5ZKq347KvalwBwlBPZ7QlEOx6S+dWSV1Mi8ryp2Vv1EbGRCXVSvlmI78iYvak+4gcVURZTP92kKoRt4QVffzF45ts0nKT91Nw9bY7TpKeTfJN+imnBunoaectOAVqq/21HQ9oNLTddWPOSdyBzVR6RuJbwtxx2DXSi/Kyb831kiRXxX9rSEBCZGgf7IopQNtCW2l/uyfNzxFbaZv9VLrqqhNjFAWmFx+8/SJXKQ3mSSuWhoJ+jyPG5wVqZ+baQwZpTqJvrF4Ni5VXvmsxnkHMquSZDtrFjpSV5Qq6f3zZMBnHf2vnEqCJ6tRSK5iDaWhe6unytGNZK9HkqT0mSc3r0qS//p5/aQuY0ArJJZV9faZTZQK/UCX6HR+y42spmpukfJtoxy2SoNQXVyUUKO0ub7X02cMIKmq6n9FEoTGeX52LZJvaJXYLL15t16O3ZhOK7Mg7q38KTtFtVI9yC23hvZG90d/5UHeUn+xIHR+NfcKeeS2Z8GjTFSVOmRR0TycZwpz0fcoVYP1IrJhfjKWOOhZlA9x3FR5ZHUmHbXacX2dsX25rllYq5Uqf3xB4/ZtlfaJJ5Q31zsLXnVxb6q2M2rUjF7kX3tRyR+O+rpyXzZ2+jqqa4XK06MsU93CBlZTuTX1S0P9hnXOudG3WShraFTo29pCtJbf6Ms8urmMUN8GFvkWqXbY1zAPOc/gwlxUSX2jd1QvfUnt5UlebmY26NWlMWgmg1SetlJAIjUcLgYpC2/mySY63RSexKKqNTZPJ1rSmj9/z8NNh6oS30xLnV4tDVS2XTWSINX0kOaG82tV6XnacHFu2daVVSc3l3xzJ4dwMNRZ5Kll7jzUAI3PAs50g6AyVHnocseifDkXZhL6pqbyr6qUKQAtWvWkWChGWBzsC4LK70z+WViofwP9Xvn5y2rv7PQuMQZzs2RE6KEslPVSHtSMYc/tyuOSBziGNStEbgGqzpDWdJ/V1t9qSYhidOpYLIrikMWNz2zWaognVDbbTOYixDKXgrrkXMJkkS+9Hd/5i1owy9LmPHMy1zB+9VPq+kk0N0y0rFq5zGwia6fxyeOeBRZZyD2D0QulzLNALjHXLstIWQ6yKxHKWx7JpknV89yFOmCEwoiRP6Ujpdk08Z1+zZLDv7rrzVlW0nKvMoZZfkPBmRXzb9DQijyrIX/8QlnIeZb9nKIo0cXRyiObTTe9mP+Rkyacp1+XTF20kaqUOwnljW6g2SFAZYVA/JtI2LK6lDuNGYYKZpufhbea8shikjsiW6DcBdAqn35DxY+pUsOOTM6TvBFFnDFo2abmcug6ZkpSx6BWtxLSVNQzl0Q35e5CsLIblHPOtrtB6grsYsxfdfPzdtL/ygUzVbMjQqKwUDHh5v4P+SvbuGy3cmdlKxUjkmUfjU92a8qbyvodnhlja0eBlJG7h7yzz4QEU27kw/eixaq+XgJJk6UqSxBdlG1ZcOb8m8iDjGmMbqJmIdNoMR2LMGQ9y6mR6siFwS9PQ1kK82fkl60tAxwSne0VgwWupimY39GgnA7Xh5R5kCs8LMWWRitjEsyWHI7cx+XZJgQwW/8t7a2SpolFObshlIooI26IBzY4zxR5VGln1v/cU+UpM5dOXmU9rrzmHY2oNnliZVNXw1o2idlfyh2djR6GKQtQ7oA8ADEJheqXm1ujVLmKIrTnmfWYuvtd+m5tljFGKGea1Thb/OjNLOpIV3ZBQq1QjhgLtWbRuyqKWynWG8oYbKxEtgJljc8eLBNBbhVZVt47W1kouhNWt9iPZfkrmo9GUjkSPco5LPsLZbUvo2hfVCnmqWxwQh6zGcguUQpumx+jQoOie5HtXBPkIq+SsIthFLJURuNzk3PP09jKa+aqxgu588gmrdjXUZdia1kXlGfQsmYznrmN0U66FqsTdOaVsA9YjWh5NoLlMnLv5SVDOG/p9qhUI+qWJShmwiwh4bTSOsQ0C17lyvfUPl5CY9Gq/BPCHbwqMbGFsQn1z0pNw1HqPChlvzRPZOl9OmnAYzqkErGwyz545o0hyo5MbgZNAGEKkbpcg3JTWSaHA5hjErGULYtI/scyjvzyPMHAkipzlDu1RnJw8oI0BIHakC64G683VmXDmjljavirLsUMlfshRCz3TXntkKcYysI+hF8PF84aKhz9FSWSunL8hxqhA7Malu1vLBfpBLo9pCwkPryFLF+hPRrwX8juOwWdqAyeZtF7iW6PWSssa67Yhn/xSP46B5ImD1I0mYblGaRsy/F6yoYx82SBK/rkRS3LxjfTsndXdl3CmdEt8n9ZAGWbBH8OEuXcwunIA4Y9yPkjyvjyoa3ZCmffE/+wPD8U1xF/xWH5cm/mMnJKOR7LP1KPT+aO97/42YxAHtVy6rzSiuVjeSYMHyTbvqhpoLApxV7Jeh+L6ZCcmPezrxveb9G2RI9W3rlQtf6oSkxdZStVVLpIhQCHach9W7afZYVlHVC2TJG6XMfMn81JrC6zq5nVonYKA1BSjEZoBT1ZVtnyujCXR/QrbHkusfJ/F6l1epBttgtkiaiUVau4Oo9gVnGCQySLTkoWWxSkuFDL1Gzm83Kmcs0nKvgZ+cdhM2JKjapnk57Ljk7OJWSLS365PBqWPfTysOeFQXnqyTatbKvC1QoBKk+eZbcvfiuKGL9VTlmsuj+kyTGnycOXuaLfspOY1Z/OD48ip8jllie93IcEGMrCkx3vqGcIf9jccq3DbOSxyYv4oumo/HyJasvZlvWdGQ2tXMdP98tfj4mwmHl5CMtFh02LVWHWknJYK9u67MNl/Q2NzIMQvn5ZW6PaIfflusSv4a2XO6bcDdiOLO95MNDr6Gi4ysKXOxFdL7t91Dr0vOx5l9cpMbWGHS1P80UPKMrOa9gW63sxxDdmgSy2MQsUe7ZotfIclFdlZata+fBSjZQOQYSuZcNY+QrkHaJHIt8cA8Jzjmk7t0kj/gsJPuHOiPXTcFm8ie+XFZxc8/iVlbIY64gZpGjBiwoT37JQhiNQ9nKL66sQ/rwmzLIQDlNZfsojFwqT1T1MRPQpM3TZvucxjYVIKFvZ/oZ/GCqV562ixxplxWiEhJXXy2E8NVILlmV1y51ftmbYPH762p0fyvTXUF0xFlq0E+Xq5v9lA1+cfmMSiMqXF44hGCFcxSV+liaouUNzF4Ua5PIyR3Rd2QsM2xdLs1jxFRW2+C0PdHG4WBeWl+pl5Sr/j37Czc91CMei6IVmhc9r09Tby79Rb1/5RnLpoxNi9bil3suut9mXWmmUDtQ1QUybK2i5u/D+utrpYtNRb7kvfSisN9KXzmQbl1sc2d4X7SBdYxSNPsr7Z7ySfhfRDtbVS9dHuvitiTa1SK+3/qfX8cdFfvuK51+6SL8zR+zYPjf+Wq/vf1yvbX9ak/0P2oKZrdfcRx6D0tZkfh39PezOK4/BHP1k1054Z128ap9X2E8TzzNKy6v6KWes3glPGYOV7x70jf7SB2NGpzcHpa0b6kX7yJe/u7hOrygvNj6n6y+7g+xUba+9zvH6Tt9RfrTtYn0fJ/qLqjv91db9eiJ7av5+gP9SxlW6Gms/4HPxb3CK0nOrDTvNHB3wRX+SlnqzL/e+eB/RRbtoK+1iS4HX/EOjD6G9wCsRjs20Yb0yTV2S+oy2scP1qPK9hOMOloHWutgx/VI/Pu7X6c/S9asufh+lfuzOMSCOebLFTH7Skwt10Tebq6OGXKljbGkrKedxOhvGbu9EfW8j2eCiDrSHPGqr7Wxea+hLD4tvKm1xGsYp9RvHXj0u9A91jX48me1gt+FBpa2qMT1EQj+AY2WMv2jtJcgbqP7QkBPa+Yz4DubYnb7Qb8jYv/SXsWbQq4zTdr/r8pl4u+rv9pb1p0Sv0J46MkKdSF9V7Trtdo0V8shtQaYzBjpJs34MZvD6Bg32ffrLdzW/1Ilb6sQT445uHWT9QoboczbI6X++01b0TtmX3lW/ogNBe0350j98p//4y/WI6Is9rt97bAdyy6HbRF8O1XWm6qGuSmNM/1Uo3amiscX/oxTyLX3/VYaCcbjA8hd5pDppIKHVEB+7ANQNGaYO6Dsy/qI6m3Hqr+sXXYwhF7/vaT2J9pAvY3+05Pln8d6lfJtYB85SWfRrpEcX6Sv6fyh9pnq+ca/KdH70F2NPn19SGCdkkUMOYau6Of3Ztjv0J3VBFjrYfqFLlP3oKMmS6vMNx68tl/Duy/FOjqyJjuyvs17xtzE6r06mHfAx5mOcr+4kS/m+yVEW7LF47tRFGdRxFbfGSOewP8jC970V41WjqSv2iP6jDuRDfrqTtnSaLp3YLJ3tvMfpdyVL/XChxjTkhXTI03u6vuPx0tyiqXp8IV2gTfBw3AI7iJ0P+Q17ga3Ann3kvkBfjrBtiXmGOiE71ONJHtvLXpvK2FcX8h58/NVTMvRKeZWhvyFHtJF5ib59Wmmwvdh66kHe1I28Oyjj4oUd3sm8yBfl1lZ6bTuWXpA+InscK9nT+egkccrnUM+LzEW7uY/qauyWicDm+KPK6GTxzpawh31/TdetMjYNPRdSJvWkb97QhR0/VoI4XIP2ksp/m/lM1zvCB40p2zP64QSO+MGji7GFTv0+EB/1Y9yZo7G7XDqhX2p0n3TT44+MY1/gvU/0Sci76sVFm/kdfXwVvZb9ouzJSvuAZRVbQT70d8zV2O2dxIds8lvoMr/fo3z6CbfjVizJ6ZW6Qi+oe9SHeZV6v6U8Juv6WtdKl9laeo1dRTfJX3d9pLyftR2mX/qrAOqPjUU2kTHsHemgpzlc3+dYDklH/0/Q9aQufIxpltnXdNG35MM8gKw8KxrjicxhJ9FT6s7FnEV+Md6kG6i6Pau2h5xhG9uIjszwO5i/2BqujW0PqEe0Gxs/XDyMKTJ+m/KjPPgpi3bTF5tpng3bSJt1B2lqUzfL0ePajLpf1yTJ2Bnqy2g/V+KnPcr7IV3Ur1Pf3GeMC/25i+Y2+j38sy3VGGwB8yXzI34JdQz/TKZ5va0JORgvfeiivA/XdaQ6BRtMX97Cq1YsB+gbtuJBt585Cf1FX2gzcwV85I2vFnk/Zv6lPHpThng2vgavdws77fkAXvJYJgXGVuGn8FtHKSO/0Z/wM9fG9RR+kMp5nlvEdSHr1JO5E5sL/yHcjoEcSMc34bZp0Ziz6ZeZ+k7etL2nrv0Kc/DPx+W8Lj8+1wObAC+yP0v9Mls8i2zvaRP6pdP46+d3bD9tJi3zWNKJgkyjq3vKliH7XTXI6A96Efb0VI5+ynFEHpATxj7mZvJkviFP7DNygJxsb1832kCdsWnYMOrJOIQeMX70A2P4HLYMfdIV8y8XY8RffG3+3iG+H2R3Rthe6fRmqgPzHdfDupBDxoE64V+hc9DCx0I/qVPyL/TbDnJW7tG8jOzg68Zvz9yQbTm+jU52r9ch7MRTPP7WdaLepA1fRU9RT7IXc9qiO5WX6k2e5I+sUnd0lrr35zEL4h/N48qGSQ/v0DyjiQT9ONrtvF/1gxfM3Byyzfgyd/O9OH/rNHDpJF2Pmw8dQd5iHkOf6S9kgDkcm0Zf0ZZKNRrfJeQ97CrrDvJ6SbQ/5PDQT9hk/jKfYsfewEZYB5CzsJd1NAcyhpFnB9kI5Adfhj6kn7io+0T7uuR7nNL9Q5e25Esbaw2KXcSnCltKfrOUpoEaFusFLtrJXE29GUPqHbJAeeE78B2diHqGnZiiPMO+tbE9TesHjRXjzG8HSqmaSHamWIYP1hoxfMTlyoM6dLd9vUNX+IsD1LiHVTcwNhG5iLmJ+YB2hz1FXqg7fYc8UYekZ/+PjaZ9YdOCho2nraFHv3BLkOU0ZIn8o19Iy/zKPJPmUskhv8dv4X8RWWAeWo299NqAemO/KCvs2WG6sL8xD5MPbWRdhW3QU6RKjeS0jFF+f8re0X/YotDFK2SfTnSfY6dCfqlbLw0sdaNs/G/qRxnUg7Ubuh1zfayxWWt2VbroZ/o4fFUu+gP7ST9TBjpDGV943sWO4buGr/OqrvrWnbAFsd5MdlKKQT34vp1k+AKtL7bX3yXaM41y+Ttf5WJf+Y5NCxuIvWU8pqsPmEORZa6Ipdzt9Rt89FGaj10eY6FT9aU+tg2sB2gL9cY+QDtO/QuNtuFrYpP5nbT0Gb590AfJHoYN7SF57qAr1rTYtMvlBzA+dVUn5IZ5k+/Y/fBF6Z+i/WfxGH3PHIxMnKu6hT9LOybp+/Vq/zPCi7W2YH4hH/xX2sDY04ZzefyVeHdlLvM1gL70fIC+EWNgPXWEBIT11HPqTOaMR12n0DnqHfKbbF/B5tJefLrT9f1N7KXHIuZu8BL5saSjvLDbxNVi/YnsMW4xdxCzoV9jnos5ljgKaYaobTeIxjoj9POnwth0V2TvVG4DzF263l8JfxM6PkjUBbuT5m71wxyl30X2WHeXlnpKF5vLzsKDjsLzltYOC6UIk+n/v/n5+LmRJzEZ8P0a/7nYP9k5+rGR7cXVyh+9Q19vliKGjiM7L+v3WBfSNsaiM36h1iA7S1/GYAMsE2fIdsHL/ILc9tDigH5hfFjP41NQH2Q8xizqcYfm1rAxjLVc2dK1klvGMPnLyq+9+iL8Z8aHtc0/1LiJkr2Ic0wrxBtmFWKUsVaNdQtjqrctrvedsMuku9frV2hha6h3GhPNK8xzyMAB9kuQYfoJe0mbBkoXGQt0K+ZZ5CDGmzmSvtxDHRJ1IT1lUgfKw0enPOQi9ZkEJ9ZeSeYte6xxSIvM8hcfnPU+Zd4uZ153NJXuVZ3o4114BbrHFf+YNUAn6dimyqu1HMr6kq9msg37yO5c41hVxE+inREHY31D+ejqSGV4ndcs1GGAfMCI4YRtod11lT/6fbTyQL/Re8aa9v+qoHZRZy6RTMU65hCVgc+BTxbjyth8ozmJeCMX7fun7VTYquhb5tMYI+ImIQu0hTpAJ673wN/i3MXYFf3MmqOFMmfdhG+FPaAe9OfjuluHeAMX9aGPiEfTR6wD8OmZj0I/wwZGPIV8wo+I+Sri6tizm4k1On67fv6yzIWPTd4hd2H7aTt/Ux9foTi4/X5s32Hq46/vli/m9XH4AMgSF+niL79zRf8jw/Q5Nph1AXXBdlCXk5TvbpKpWGNThzc09lH3mA/xQ5k3qctG8gvRw9DrYvwo+RPOO8onzoJuH84dvc5rqezAN1pDhr4ztmH/sAvgTWQ/zym0I/JH5vl9geaG524r+6/Jx/bfk6VPV/EIYwXcaHuPmIPcJnjO0HiwT4GNoB0N1LcnioZe3m/dDBnHBjDfho9EfLaX8meNgi/EHIoc4hswt4euhMyQf/iO1LWe7DEyFzqLnxvydqX0HBvN+qiF+FaIRvwBexVyspUCQ6sl38gHZeL/M8/MVL3uVzr6E75aGqtYx9NnT+kv+y7UAVuFnsb8EfaCgx/wHqn2zVFdov+pe/QF9QwZpG3kxRwWcyo6BB99yDqAelMnyqFe4QdQF/JHj/i7nX3yQ9inEfNnmpOwP6Fn8ER94LtSctTbPljE2xpqHkIm6b8RuqJvo+5viablYelW5lKN/2XeT8HvIM+Lbs2Ycli706/kz14R+cccQH7YifBj2YOCDzlIsVD3bcwjtKet7APtGa9ysVHsJ90ufbtGCT6QT/uO+G7U9YX7JnwYZBz5QZYDx9qFeWiUrmXXZvmmvFjb9lE54b+8KmclfPvUhxpb2oLNos7oN+uNQ60rEROhbcRlaCf7VtiDiHPEeNBu8gkfgbUN68awT/QFPKzH4eGuPL4TD+f7WarreYqvhe+XYknS4bCXyW9WfYeL1uMa6ZXmdsrFzoU/E3aY+YLx2e3yPBfE3mn4h8kPlD+QYlL+HrGWsGvkzXjhNzJezO3Id4wFaZnnUqyr4AsQX40+QIZvts5y6ek06+UYn4r5jTgDe6RhGyiXvcCwibQj5IB6RYwVHXqIW4QLv1M+7aV85jxiVaOlw4wxNjdiN3fdVI4Zhi38WvNzSx4dq7Lx0/BJYg2eYjGyNdNkbCLGRb8R471WBbGmi9hupEPPkYfod67kS6vMvhpHYsLwIlffGv/b+oNvC28dxQRiLy3WvdS1qujhk4YvgbzG/BW+oJ56VRqjK2KY7fCdPH4RW3qeQ26O9SD7jNnulg181PBBQ96v1pz0meT6CelSH3Vw+MPEgUjDvhVprlO/U1fifWGv8LlirqJ+tTVRPujxjPmii3WKNvSXXSjGK05Tv62QnUJG+R7+FNdD7ndk/w8JIW2hX6LuEZ+PPf/ifk/E57Hpl7HvpzJYd6W9YNs92oYPGnM0PihYT0ZYP8YRY2HM8DPOUx9g4+JsAn4s9m6EZOacR7IMcfUkhux5kLpQD+Qp1t/Us7ECb+cXYofYcOw7PPQrfTRaEzG+xmPUyekYD+qAncEOFGPOx6pcxo9bwvTEydKhqhz+InPqJRrniG3Qd2tld/bmdW3yy5jjsIWxzqJfsSuXYCfYW9RmXcgt9UefY/6hbdiLFKPFBrjujLdUcL3txLZjC2lHaqfHL5294HEhXhfznT4PuY7YEvGyWHNPlTzEuBG/DIwOgPF/sKNRD+qNf08+NXlcsC76car9ceoRsVf2p8njRflh5EG7S9cphuH6k1/EAiJWhm2K+TH0agf77fxGubW8Dxu2m8V4xM+inad5nV7Nv2FHmklHVqpvInaHPsS+UegdMeeYr7GRzO/4dbGOHKx8w88fJRwxOcaA8mIOOYszMbatbxXij8wLj6r+e6ku8FI+7WLvmr1w2tRHaW/2mRrqxvmfiD8VY4d/lx3yDp+RPVr0DH76JOY3xuZg+Y2x7x/nGeBBZot+LXvk9AP6VvSRwubQN6+onnNVcNgMysPfjPMRP6mdL2kMhqpS3b2HiT0P/4HvdXTV1cG/t2Vb75DPprc6rbcZyEVxX4O9nDgLhK36y55yYW2LHUQ3iBljP1op3hC6yT4OeYW9oO20hdg6eh3zK2XT78hurGNin4S2cp0tv4Tf6I9oE+2j38JG8dttales8yJeEvuWYYebqo60GZmBd6XsSayVyKMej8bmXJL6vCib2FBk6O+x6fO1p9VAa+7kj6gtYQtirRRzOPRLNWcVz4dRx2flC0SsgotxYC5gDGK/OvasuegvPZkr6RU4xQCpH+tkyx4xQMaIdlQV5uzWiZIf+p0LWxw2GHkuxrHjLEb03wfSZfyLC9QfT0t+ztU1XNet+s6aI9Y9C8X/s/0HfPY0DxV+f0i+NbKCvoy134B9HCyZjZg08T7mOPxgbGz4whP0Q3O1gTFHvxi7KZK/WIczFvgx5AFPrH3ChvB3J/HHXgyyTd2xER1FRz+K8o8O1tX1iiZe2oPNSPFA/BKPE3Wj/szD+bkamQfZivl+d8la7HtzoSO0jzYwduHrnuv5JdaAE3Q9U+jr9wp7hDEunEHjnMFp2qvBLlFv1s2xNtxQV/j+f18L0vd17C9RbswF1CniOOhCfQlEzDfUi76kvott39P62Gv7BercNd7fZcxD97hqScCgE1OJuY/9sOSPyq8dJUMWsZv/T+f47XzJ2zk8mtPycaXwRO1HNnQ8JuI8zKXgQbbt1JE+KOZVhXMsqkuXkXlu5XfSwUv8lPQRH0aelnovIuYGPRmy9KH6IPZDoBV9m+aaiyPWXlzbpD6zfCADVXVWIOIhxP7o87CfsScTa9uXdZ2gNm0vv428OddK3swjfOdcTvRtxHL01r9UH/Q94gohP2GX0/rNMlnsJ+Y49kLjHBY6gr2NefBqZbLTXVqD2H8n36Eaf2Kxzxfi1KxBsWcxt9JG8ow2xpxAmburfXwvxmjDtif76nNv4MXq8MDskcX+GfLxd3mP85x6alSKt8DPeGO/8ZEo4yt16Isa5/PUhlhzHf541rOzdMV8FXsb6AF+3e7iIR/qSD/hCzFHxbgxhnHGjvZGf/Ib9o54XqzdoLHfkPxKx9j+vu/Js3P4nb3tWOdy1iRiXswLb9u+Rhwh/IbiGddtvTfCGEc+HKIurks466S3pyQZIX5ymNbzpMGHCP3GfsSamusL6eTximmH7U26pL4NH5T+u0/jfKP2QhgLfAfGjXG/zvlj+9P8UYjBIK/sT+MH3648NEylvo570+bifibnRehr7AR6ia0Pn01PN0w6l/rSdjXWouHfRnnMrcgBc2tqZ+HcK/0VfhprhSPtZ4ftD3knL71dpvSZ1wvUKeSWM3YpVqB1ZviQEVPBFt2i9VRVjRNl7W97Hev4GtrDoR3wzuKcg89M8NsSzi4IoyPUBf3eS4YVuaRf8C3Cj8KuRLzmP5qj2eMO3ypip9SJs0pnqL+LZxO4in4EuhdrE+wn+UAPH+AT1YmxiT0e1gFxfjLmCtIeI7uC3p1hvQs/dIXsasj1ChW2WAs2fI3I/zbtiZ2rjbCYB7GN+AWcHU/7fO7XudrvfVrXxeqTK9SmdBa+sNcW50UZf/oO3cJOoOMdVLeQuXSmQryxbxMxIPZHQp4iDhBrQcqEzryD/Mc5wmKcAzsTexPRV7Qn5KmH9jHjbFDsNYVPN1djuFVhnqGexNLDfz9fgVf40Ivr5Z/Mlq7G+pn2dFb7qFP4rJEPZcQcx+//V9iXwHk9fm1PezGYalIIU5Jpn2ratymthFYt2qZmaqqppmamXQstU6KkaFVRaZNpY6QUihCSkAyiEEIIIbzX9eu6/+/1PJ/nfR+fz4zTmfM997n3c59z7nMzzi+MY8YGEJ4C+2fQF4bDRkife7CXRfQanQtcR2NsTyg72FJj2bccOPhbWHPZx5zDIW6CfljKGGxc7DfKcI4+BHy7RrY99iV1/PWak+z/G3Ge4DrRGXUvg7kTfDXh/BbOyYwvJs8uOMtxLMyBDYJrAcc59ziWzzUt+H65VoWzJOWlLZK6OdcfZBiOmga7Ns/Y7PcvMLbDGsmy2b5sq3C+9vND0NG4B3McB/9IsLvy+6sw7pkWL+iIwRbFuswBnnsNbQ8cd1zz+eM6/ynpY/Sl8Cf0O21iwS/IvZ37Vehj4qhzc59lneg3OooxMBmLc4g7YDdy3AT7Ev02QQ8nD/YJ95bS+OBmjL1o9M1CDK6wT4b4vnlYI8O8ug12oICnT4jjiGOLeyj76UPoQuyn+bjoEWKaw3wMbRrszuwbysZ4XPLherGZT7FqnIY43PA95WZ9wli5EcrLeFyqiKR5PFYgarLg1Xh7fhrgSCp1vJOXI3wvrOfzBI/5GzYzwJF0ze8XiFoh/Bfgs1rwVj4nIfhRDIQN4nkt6HOFj/qgQNROwf+i3DzRfPsv7l0Ivw08Dwi+F219SPBJ8DkseCRyfR4RfBblHpNsn6Lck4LHYXCcBcwLWO+BZ5D5Ift2MeS5KPj4P5cMV5Gn38CzcIBh7C4OmHxOgn85wJHUb2jPONFsgfyVBC8HHC/4LtBUF/wmZEgQ3B6yJQqeC54NxbMp2j9J+A1o/9aCd0O29oK7gX9HwQ+BZyfBMahXN8E7APcUfCdo+giehjYcIHgnykoJNJAzTfAi0KQLroSBnwE4koof5U4W/l98O01wHQywGYK/gZw5gp8Az3mCX8C3CwSPhDyLBE/BGFiiug+wcotgvK0W/h7IsEHwvSg3VzQZ1obTOa4E34f2zBP9ZcDvF/4ZG5+VINsB4VuAzyHBt6LNQ1u9jLocFvw+eB5ROwzhExXCt7XxvwaynRR+EvgfVkrVe1H306FNwPOM4KdQ97OScwb4nBf+GuAvCL8U7cCg+sjThCg3GjBpeoJPjOAf0D6xguv/jGShggeDZ3nBL4AmDjB53vlTgah48WyAcZIomgUY5w1FMxcyJwk/Fv0yXs/TDAO+tfBJnLNKeV0JPNuL58d87lB8ElBuH+HfAp8wbrehrdLEpzLaKl1wY4430Re18fkO2n+yePYGzQzBD6FN5unbe9AmCwQ/a2tOE7TholB3m/tLQL9C9N8a/SDAq4XviHLXAuZ10y9Anyd8S9Q3jLeikH+P8O9Atv2SfzDa87DwpfmcgWRYgX45LnxTjM8Ax6Hv8gU/AJ4nBbfHGnha374P/meFvwl8zgnugDFzXjTvgeai8F3RR2G9rc4D2bPqX65pgl8FfYzgebQ7Ao6sFZCtvODRkD9OcCb6pZLgEig3Xt9+CDhB8AjI1lA0WahLeL7qS/BpKvw2lJsk+tXoo/aA2W6rMQe7ieZKG3sbwL+n6J+ADANEkww+KYI749s0wYcgf1hLb+TaIvwc4DMEPwI+WYIfxzo2XvB94Dk5yI8xME2yLQJNwD+Ntp0nuBHGwwLBvVDfRYIXgM8SwVW4BwluC/xqwa9CtrCG9wFNWAN3Qba1oikJnhsE7wS8RfB0roeCK2Bs7xTcDnBYZ26FnGFtGQX580TzO8bzHtVrE/gcEv5erl2CJ9t4OMs1UPQfow3zhc/lWBV8Fco9LfgH0J8RfUHU97zgo6hjWJMXgQ8dq5GnlCBDYcFLQV9c8LOgiRY8HzxjAEd0BtCXEz4XPMO+1hd1LC/8R6CPA8xyN6Cdqwv/PsZ/GGMxplds5RgW/wrYFxrq294Yn60F38A9V3xi8W2YIzPRzt2Efwn0PUV/FPKnCD8G/NPE/2/IH9aHRaDPEH068JNF35xjDzB1j4ngE+bCFMi2QDTPgVnQ5XpCttCef2KuLRLPHejrsO71B361aCbYntIb7bZW+I3gs0HwRNvjDvApKPG8m2NJNIfQnoGmHOj3CJ+OsbFfcLbxTLP5+yHqdUD4mlgDDwl+3cbDLIzDw4JTMMePCC4K/DHBQ9G2xyXbnzanLoMMp0VzG/dftf8wwOeEfxky/Gf8oy/Oi08GDzR5l+BRGJPRgCPPJqLusYAjOi3asJzwpTAG4oRvZGvgv7anXIc5Ukk0P3D91Le/gU+CynoR3wbdZj7kr6RU/yXRPk317X2QIUnwALRVa8H9qCsKrsOc+OJzM+TvKP6FUFZPwWVAE/bBZ1Buir59DX0a9rjvuV8L3wRtlS64MWNtBM+yeTEE34a5eQjyZ4nmI9CEdfJd3ltWud+gHcarHd6CnNMkWzfu7/r2U84X8XwU/BeIZhLmwgrBC3juEJ8HAOcKzuZZQ/BwwPsFb0Ddg473DHgeEp+b0M7HVO5E9OlxwYsB5wvegnFyUvSvoKyz4vkz1zrRFAf+AmDO35bgWfz5S/Q1MYZjAUfWTLRJOcE/4Y9hrRjPtTfMI7R5mOMPok3Ki/5y6nXi+QFoqgufifGWIPh14EM7J0CeRNE/Av5Jomlm/bKMOp7wFVBWe8GV0W4dAUeePUWfdhN+EWToKXgZ+PcRzR7QpwjuiLGaLpobqOMBpvv/AT4pJXx19GNok9mQeZ7gHMomOI17q+D7Mc7n6XmvFahvaJ/u6JclqmMb7MvhLHmUa7XaIZ56nWR7DPXdIp7pkCFXcD3wCXvBoxh7O4V/DjLkCf4EddwjPg0hzwHhx9i8e4+6h8bDqyj3EGgiOd4AHxf8HdrkjL79FXzOSv67IcMFwR1tXf0FPMP+NQHjtvBuPUuK9owBHNFv0b9hDeRT6bGied/OuTdC/jjgI08hcC0SnIT+ShCfLaBPFNwd+IaC94O+qehfwHgOddyLerUWfjD6saPoK6Ftg951hPkvhD8K+m6SrRT6a4DgBuAZ9rseqEs68JF8kOAzWTS9wT+sOV/y7CmeM/kchmhGU/8UvhD4r5BspUG/VvjN6N8gTyGeN/Xth3bOHYv23ymafJ4xxWcn1xPBHTCWwrq9HnwOiX4921Bjbwvwh4W/Dv0YxvkN+PaI8F8BPib4Na4/gjdRRxT/H7gWCT/OzlNHIc9JyfOp6c8bMTbOiH6SrfO3YF06K/xos/NMQpufE/4D1Pe82qQN98QX9Nye7WV90M7RwEfGP/iHcsvb2bYeyooRzafou1jB47AYlAMcecIDdYkT/knufYJ7QbZ4lZvI9hS+ItohrBsFUN+wpi0Fn4ai6Wtn84WQJ4zJdhgPof3/MH3pOGRrqm+38BytcfsWyg31rWx7bnW0eZLkvw34sA7/Aj6h3K9trtXEGGivumzj+Ne33TC/Ql/PQVlxeNaf+Hboiz6iGczzjmTbzj1RT9QdMdnepj1HNPlon3TBd6C/whyJRV+Ec+tMrCEZoIk8ZQgD8TTRf4FvZwiuhfNjjmQYAZkXSP7LIMMK0exAuasFnwHPsN7eh3LXCr8ePDcILgQ+W8RnC+jzBGcAPqCynuQeLfoHOEcEZ9iZ9Cq0yTHJPx1wqNcKyHZa9Kvx7RnB84APY+8K4M8K3g986PfZOPSfkwwnGPCqdaan6Z97uD5L5tFch/dIr0B/RQv+gvYZwBHdEgEhYT8qRVsi8JR5JWjiRdMc/IM+0B/46uJzF5PYq9xo4BOBZ7nP0Fajb4uabe0NjLfW+nYUcjF0FM3nKLeT8GXM1pphZ8AOtB+KfhXx4rkOPPvo29IoN0U0XSFPmvAf2P6yHeM/zJGLPOOovm15VlJZt/KMI3xFjivV60+UtUI84/Ft0A9/sXPTWO7joimI8bxF8lxj9sBj4JMrmkNctwW/QVuNyrqcY0zfvoayjgh/kGus8Pmcy6GdsQedFs1yniOEL86zg/hPQrkXBd+M8VB4r55LBn004MjY43kWMOt+DH0RJ3xvjO1Kgtuj3HA+fQH08eLzEOSfp+cUF6NNEkSfg3GYKJqO3KMFP2ZnkFN2Dr0Da05rfTsb87e94OXU9wCzjpmg6Sn8eLRJH8EnjeZryB/W0rFYzweo3Bd5FgvjFnUJdfwEfs000fRFuRnCDzdbfSWUFeAitOeIfwc7x70DmnBuvZxnDfH5mWNGbXsVvg368C/4NoztqzlOgj4DHSlH8nxtusRRVG6BeFZCXYIuuhc0i4SvRh1D8F/ooxVqk6m02wj/Gfol2H/aY98Julx1jL1gV6yBcRVsI9mg3yI+FTG288TnNT6tKDknQZ6wVhQ3W+KzkOGAaCZg7AUd5ozZ/2txXIlnNso9Ivom1DeEr2DjqgzGW77a83uumcJP5fjXt0+ZntMXZQXfSjzkvyD6p0wPaYQ+uqhvN0Gewi9KDwdNccGf2fnoZp6vw7zAehhsILm0Y2AfjKQAtD2xINo5Gnwiz5mhTWIBU/7XAFcCzLbdzrtfwR4L+jDX/qD9WePkC/OR3W7j/DXQBNvFs2ifBJVVDnBDlRWDtg12p/qoY9g7LoMM7SXDMbRb8N0M4NlKdb8G34a6f8lzlvA30fYefCumgzWhj0n06+nLEH0n08Guoz1K9Bk2ZmrZ+tAa9R2guqzBOEyTnPm0l4rnL2Z/vp6+ReEfMF20icl2NWQO5/cZtOeLf3Xa88U/ivqn8IMhf9DJB6IdlojmV5QbxtVy+nRU7ofUKwT3tW//5N6qun8MeItoCpi9tCXaPzeMN/oCwpyinV/yPAT+e0K/AA5zqrPV9zeeBUT/ONqko57YywPPMN/f5TgX/BbPg6L/jP4mjbeD+DY8s94M8BGVWw40xwQvMFvxQZPhG9sfe5h/Z6zZ0PJQYNDNrkabh312sZ0fmxnPGuw7tXljtEnQ7XNAf1zy3A58vuryOdr5dGhnngGDvxIynBF+Fdfk4C/jmVffvsA9VH39MtotnKcSGHy3T+stbbZaB6IhW2HhE0FTXHAn7h3q36cwhqOBJ8808981xbgKffE5bZiq7zLznTUwv9L1tFWqHUaAfzmV9TfPoWq3j+g3Ef4z6qiCE9CeYR9pyPUHeK4PN9lZPhv7bGKgx1hqCJht0h30SYI/4R4k+hTq86rL05C/vepYEjIEmht5vlBZk8ynUJXjE4GfEduX2e2Hm71iMtonzLXTPJeFdQPfpkjOHqBJU7m78G1on67oxyzhvwA+7LMnAAcd9WHIOU18RpkMjbFfzBA+G7pEjuo+iuuDeC6zuV+W53rhv6QNUPR53BsEv2J9lAk+eaJ/H/KE82M3szUd4R6qb98GTVi3b7fzdTXQHAYNbVnDIMNp0T+Dtjor+ReA/pzw8yBDWId/os1ZcDrPEZLnerRn0F0P49vC++WPABwt+B/3ffAcDXxE30a/lBPc1Wxos+kTEb4+dSe1WxHaD4Fnue+ZrriYZ2TJ0NNkfsfswD9xHEqGAuiv6pLtKM8mKutPxjaI/1k7C6y0NWE3zyn69gLoO4p+n82L8cD3FH4nxkmK+JdFuWmCl9KPLLiIne+uMz9CKsoNa8JF2nM0VoebvjGUZ2HJswbljhe8zmykK1DWNJXVEf0+QzTP0ycofArqtUAyH0ebrBD+VttfnmKcg2gG8ywsONb8Wc9Tb5Sct+PbsHePA888lbuBtibV8SL6d7/weyDnIZW7H3zCul3D7AAHqAeKppjpD0moV7B7zAf/EDu0hfuL6JeD5xHJXJnrv+AnsP+eEc3j5u+bg3F4NpSFcX5OcH/z45w0f9k4yH9eNLsBXxD8NH3cgtPMn96OwU4vSccAXFjwhxazNNXasD79jKChzOtMd72OZ3bguWaeA1xJfP4wH+5+87VNoI4BGrb59dQDATOt9GuoS1gHsjm2RdPA1tiVkDOM4ZdwBukmea4H/QDBW80HdxL80yVPBYuTOQ188D/+jrGXobIaMq5b9M1QVvBZx0G2oJN8bnbOI7bOvwz+kyXDbtAHn91PjBMTzzo8hwaZMa6WCJ+N/loheAfqslryPMT1WfBVmC+5ormPNnbBxTCW8kRTBPT7xf9RyH9YNBt5Thd+KfD5wr/JGDB9G2tn5xy0yRnh+Vb0OdGvNt/KCozbsNZ1tr1+I3UzrSeH6U/Xt9egX4JNex/oLwgfg7q31tPPj0Oeiyq3JWiCT3AQdR7xzEEbFn5Zvl2zpy2njqe+KETdRjR/4G5FtODKkCfw7Mm1TutYN9QlRjTjUPdYwJThT8gwo6r0QLRheeDZhu2t/T8HYdj364N/aIezpsemoc3jxb8k5m91wTVgJ0wQzxn41VTlVkSftha+JmOBwvoDGToJnwy4j+A4tFsaYMbebGLsmfh/TXuReHa1uI5NZuseyPO76M/a2edTrFdBZ34IbTJPfLbxiXzRdze/wF7Gb4imN22boqmLtg06TBWzld0EmrWiKYT1bYO+rYZ9Klf4kfSrCv8LbZXCj+G6LXw0z55q53zYSQ4JP5rndME90P5hHJa1M+kDZsv62/bxjpDtuMrqaHbO2oDzhc8E/5Pi344xe8EnxVgO9ctK+gJE08f8YrNRr4vAc838E/0Y/UrJyBubg2nrAxzxXaKPgr5XF/iwpr1m+nwf7vWgJ/8r0D4DAEfWZ/BMF/wH8MFHGcs9WvQt6TsWTQWL86ln+kY6v1VZ99tZeIbp0rdxbIjnJ1iTF4nnEsqsujyOMbBWcDTaLeyb6TyHCj+Oe7r4nKDtS23e1vr3O5S1UzRbzBZ0nr5FlXuM+7t4fmJrL55E+49uswvtc1j0OfQtCk7hWUzfTqKvU2NjIeQJZ6uGGBtnRLOAuqvg2sCfE9wFdTwPmP2bgLEa7Jl1MLYLH9DeBERxwWkW69vW4lXyGEcBmojewv4TnIU1JNgWfrR53QL05UHDunTAGhL6NANjO9hVfsGvePG5mzE8gr+2eLPV1I1xqSZiE6ZeKpputg/+Qz+O8O1o09O3nzDGQ76ALoxVkzxlaLdRfR+iHUz98g3XmRAHgv23p2hSGYejtWU1feXiswI80wS/iD7KEn1txkVInptR92miuQ3fzgPMc8dXZpNJw5gM4+oLfBTafxptpOJZE+0WzjKtIc8G4euAf9DTnrOzyQWLExsPObdIhl9dZ0B9g1+yE89WojlPm6Ha4QzHg+ZIHPo3rMkPguaAZGiAbw+pvhewxx0R/gD64pjgqzCWjgu+iJyO+YJzGY+hcmdb/FuGxUUPp/4p+pko9wL8a5H68oymcrejrS6I5gHGuoRzMW2V4l/PYmY+oA55UHZp/IoGHNlTzCZ5B9o2VvhhFoeQZ3vTCdO7LkKe8qJPZryl+D+GORL25SfprxfNKYyHBMFdzSbZw+RPhPwNRXMPZAi2u60WE1vD4uHz0e9JKvdZxoQIHgqZw3l5FtqzvfAjzHa9kP76EIuOsdERNGy3kRYv+isQwZ9ygbZN8cmjf0FwA67/+na/2ds7o77pwHMtOgiek1WvKsDPEH0fi8dYjvGzQDyPQp7Q5tmme5zGt4vEpy723BWC/+bZQW24CN+uFf9p4Jkrnp9wrol+Dfd04efRxyR4Be+zieYvW8Mncd0Wz2SLzbuJa3goi2u4+DTEWArr3hzqtOJZEN+eE1zSbM5VsT6HmNUxdnbrj767IJ530JautprDca5y64Gm+Ks6h4ImWvBjtBMK/sB8js+iTWKF74VxFfrrVovbLwn+5UBDOW+kPV/0u9C2lQBHfMEoK0H4PIs7mkr7mPANeOdH9BfQR+Es1on+LNG8bn03hfZtje099L9LhrpAdBLcBm3VUzyb0zaodfVBm1PX0fYl/p+DZ4hp/AntEHSbJXa/5qjZ9otSpxX/TNQ3S+UWBp9whh3I8SyaWMiZA5jj/GXqoqKvbncl3gCfYCuoy7gvwcPQhkHH+x3yBP2qJ9pnteR/g2cH7Ud5tBUL/py2NdHUgTwbVO7NtCuqvqcsHv459GmuZH4PNCEmeQPaLZw1Jpkv4Gbw3yP+6yD/fn27w/TYWoyTEX4p54Jk6Gs2wyza4oRfh7qHc9DP1Ff17V3Ub4UfTNuy8BV4qQsXkAkn0JarckuZrbKOxS9t5/gHfeSsyvEveCPjTwSXtHFSlv594Hl+WYlLfdVFk2Q+0LUc58Jfj3mdKHn2Qc4kwXUsHvha0HQUfhvarafg5hyT4vM17eri39zicGZDzjTRjKSNWn2XYzGQH5rvvgt13XA3weyiDTFH0sVnLMZShuBG9L0KXsJ9R3zyGMcl/I1mkxyGcsP+MoljJsQiYt6FNeouswmvQH0nq75rUVaOeN7Ae0aCZ0Hm4COrZHbLcWZzex99t0D0Lbnmi+fzrGPQnWi3kd5bEm2+WjS54B/i4n43W+gO0Ic9+mOeg0JMBcoNfb3U1sMFtl69ZGeicRaPfZPFLK2zM1oc5NkieaoDn6e67GGcj+p4wPjP4ln46ktz5Gm7u1EXMof+/Zp7lvjczphtwW/h7HNAZeWgr48IfxDtdgwweX7HGAnhH0bdT4r+asYvaY53s/POj+ZXfZvtrG+vBM9zgLnWbTBbXKLZ9+6nPSTEjZhfuDxkYFL6iF+VZ43Q16hLYeHXoqzigvdyLgseZrbfahaz+qnF+9XEfIwBfSSuGG1VTt92QTsHvfdJu9t1OepSHjSRGDmL5bjM4+Iwj+LFZwB9rBpLLc2/M5rxPyq3Iu+7Cb7GxlIBnq+lr14N+qagYRu+ZP6jfejHjvp2JOOlNT6fp685tAn3BsnclLE9wo+yeO9Ys73PtRj1XaTXXtPQ2mo649DEJ4bxyRoD+yBbumju5DiUPE3Rhlmif8X2rIG8d6OyUulrFs2jtE9K5q/Nrvscx4P0q4nQE4It6H0QhvW5Dfs3nF+4z4pnCa4ngkeYnXwXdUjhv7V7jifNb4upGbVI9VqNfl8h+l+p14W2tXPrnRb/f9L23PsZ+6F+/AljaY++TUU7HBLPuzGGg26z0nxhlcDzsGToBviY4EFcQ/TtBp6VxPM72iTVd+VRgbPCP2Dxhz1oe9e35SyGZIbFOn7JeCeV9Sjn3evaF0w/b2/66sd2vljM+2igj8TRoc3DXdcxtMMDT/pl4FlePJvxXg9g7q25FldZEPVKFP13dj7dbXF6s8C/qfgMNx/044yjE/5mzM3WgpfSryrZzqCsbuJ/Hdqqj/BFzIc4xNbtt6nvib4AY5zEswX4ZAlfkXfNxOc46HMAs99LWQx5PeCXiGYT6NeKz3kbV3dA/hDvvZt2qBAfgjqGO92FaJvSt89bbOqDGFdbhJ9v864s5k6u5HzQ4i520fckfB0g9gu+mv4m8VlOW73gqbw7pno1BT7clb4X8p8UzSLQnFYdq5tvbgrgcDdzn50Bv+d+IfpY9MVFwbV5z+INnRN5V1rz91XzCa7iewygocwf2T7+A/jH6tt6WCfD3YdH6H8J96TsznUn+kQE32G+75vNjlGJ9zjE8x36FjVnq5md9hmObdHswEehrAfMB1qAsQSS+W2L9f2C9mSVO5Ex0qBhOww1m2cD8E8U//Zon4aiuYc2XpXVD/VtLfzPFiM3Ct920rdzObaF78G4AtEfps4cxgYEHCD6noxVlsxrLeZwNvAhTi+G+qToXwTPDNEvpe1L/B81f8EFi3t5HXIG/bA6YwbEJxtJOnPEZyzjNwRfTz1f9FNR39CPhdG2S1TWMMaUCr7T4swfQDvnis/rZlcfYmeuknYe/MHsOfMYe6yx1IdnqADzDp1krmFn1R+55kuGXnbmeoh3lCRDA+pj+nY+5AyxTD/YPayTvEcgmjG0m4nnNvaXZL4FNOH8vgzj57RoBptuOY1zTeWWtxiteig35Ge4hjF+Kquq2ZY/sXt/2+kLE5/tjG148xKcYuflaYydBj6yH5ktOt7uj6zEmIwRzfcWIzEadQn7eBbGQCxoIjZw8Al3SK/GWhEnfH3IUx1w5H43acRzqPl06vOelOTca3rUX+az6EGbsHiWod8nxIpQDxH8K2i6gYZr4Ifox6Dzv8k5om9P0WchGc5yjgh+kLGsoinMeDnBNzBeWjxT6WMVvg33gnAOtRiwZRarXNTOgDsYF6c6vm/xYyk8DwZdy+zGMxifJtm2YO7kCR5vdyWesdjU1xmzKv5toLccEP0r3C8EF2dfh3M0dSrh7zIfzWL6fFXHY2Yz2Wj99STaIV80Bc3Wer2d77LNfjvH7DYf0PYbbGIWQ76O9gTJv9nOku+ZHa+F7S9v2t2WshZHdx3jQ+qpT2lzFs9U5nyQzIWM/mHLb1AKdQ+xhYM45pHQLmLfsDPRKoyrGOGfRDuXBxyJQ7M7tncylk/jtiBzmIhmEGPS9G1T4BOEX4h1JtgeF1K/Ek0RzKMkwJTnMP7YXvAws5MncY0VnxOm7yVgrQj22JGcF+L5NuQPvpgudvdzAGgGiOYmlJsu+Bxoxgv+GPAMlfW0rcPL0Q45whfmfR/JeR1jqpE0LuJT4L1C0STT7yN4BmNvAHN+DbTxX4Vn8CCzxQp2R1l5+ravxX3diPG2R/i6tqcUYLyo+NSlvSvUkXGVoi9jeUL625qzCXLmi+ZmsyG8SN1efAba/ZcclHv+Gtk8La5ghJ1/K+Lbs2qflux3rb2beadVZY0wXTfB7Dw7UfcLoqmEtr0ouD/kj3pLfi7zCdZHG4Z9Z7LduX6cvmPRn6LvQDS9IE854CP9Qp+g4Ods/K83W1lDzjXJecjsD8/TTxZ8c7zHrTVnIs8R4BmJgUdbxYt/jt3DLWj3mAbxbKJvD6Cs6kE2i5GYCfqgT7agbqm5X4f+GtDTfzcF37bXt4epY4SYE7MDvIpfHdUmD6MuYY8YwT1CZ/+uaP+e4nMb6tVHcAfIP0D1Gs9YTcHXWl6gya6H2xm/L/dclbuWZ23BswHnCG5B/Vzt/Bbnkcp9FvUNfNJtre6PMRB8T4/wXCM+d1HvEjzObDuX2x2BuXaWv5b+F5V1BWh2ql6Vzf5wm9n832GeFtEvNH2po90leZRx9aJ51PLDTKSPUvzvYcyn4I6gD2eiZNPfruX9cfHZZe0wmf53zbX2jMcQzXvcs8RzI89Bgu9FW4V1rJbZQq/iXqlvpzCWSXB/xmbo24J212CH2UYmW86KJ82286bF/48C/4viecbuHT9k8diX0X6OhL/sr9Zm28ni+VFtstnOOFU4R0TzGOcOkllGbB12v68O89UE/mYf3gx8NMqKrHV2r3OAnRNfxvyNAQ3r3th0m+Jmb9lHm7xoUmzt+sTuyN9puYB+tpwDDRirJvw3tD+o7i/amfSM3Rti0rjqornWbFwrMU8bqi5P00Yne0gp5nYQfjDjEPTtGltvXze7wY2Wu+ZmO5sXN5tzZcYcis89zEkiuDjqEvT2Np5nA/Qpap8y9LEC5hpV22wy26l/iqYn4xAEv2C5aBrbOTEL9ItEM5V3+gS3M/oLwK8VfgDacIva4XOz0S2yvl5IG6z6qxl9T/q2iq0DHRjrqHm32XTUdtz31Q7Pgv6A4D2WY20x70xpP51o/qBnOddUrzcYW6h7RldinQz0XejLkJyvWA6x75gDSmUVtDxvZWyOR3NPV91nQv6TgqvaneVJ2CNOi88UxucEGu6haodlkD+sRWNQ7kXRFLK40970Fwi+k3e637mk55ygbwtwZI+2+vahn0v4ihb3tdziE+IYly6aIrRpCL6atgvAlG0abZ6CX7L2eYo6p+hngCZRNIm2H71k4/wNyNxUNLdClwjr2060T2vg2T6vA/6PTdju2s8HvpO+nUGfkcqtxJgctcM5i1FpRz1WfbSWsT3i35lx0eKzkHfEBH9m83eFnbmSLKdZEsZhjvgU474pGTK5J4pPOdorgt+ZcTW6g9YJ364W/QDG9gguavrbG7x7KPwptP8Wwd9C5nCH+pzlVrrX/LyzQZ8r+heYFy7kwrK+OGZ+tM2WIyID43anvp1KmVXHomZ3/YvzDvjijLuwGK2ZgE+HMYM6nhF8yPzdH1t81yjqxmqrSdRRBRdG3S/q29/sXL+RuugR3cGnLVR1H87YWuAj9Gbf20pdFHjKP8ZyCf5mOTqe4Vqkb58H/5Br7gNrn/N2X+Mbixl+jXqs5MlnjEe462T2tMM8l4lmmsUt/4Kyqku2JoxnA0w7xmrTtTLsvsxOnusUt1nD7JO7wbOj5K+CNg9nvZ4c8+LfwPJj9OYdcMmTa7FV9bCvhX32KdCHWOjR9m0ju8N7P9ao4AesShuIyrradLZ6lh/yU9heMkTzuOk2q3iXUPh3zC7ajD4d4YvRxqU63oK1YonwLRlrJPnvYf4r0czl3BFcymJll9pcftfiOg5Bzi1qkyYod6f4/ws7837hH7WYmccZzyn+HXhXUXXpZ/E/tzAPm2jm8Q6g4LsZCye4mN1rWMT8VyqrBe+5CD+E50HJU4J2SOmfa01PeM/q0gjyBP2tvNm3H8M6cFZ8Hma+U/XvePqGJM9O2vckw1MWgzeLuRHevbSu1jcd4GbalpEQORIzwNgh0ET84MwfBZhl3QL6SoAjbWj70WbUq7poWtGmLXgm88+IfrnZZtswjkj4n1GvYNvsaP6s9cwLJz7fAx/m6XHTIR+h7oqk5ZH9kbmA8IhLZF3lnVnxr4AxliY+HXjPRfPxguX4esNs12+Yfft5KzeD/lDxfIA+ULVPK+7dQdey+Kvdds6daPO6L+OixaeL2Ycng2eOeFay+ywvMP5Z9HPt/v691OXUj68yv0fIhYi+WKv6/gSaXPFsbLnIltBPIZpVtLdr/EyhXUv4UTxbCX7B9LEveSddPCvaGbwfYw+Er2dnllcYFyT5WzFuX3KetpilsvQjS4aHmStJddwMOc9Ihq/Nvvcxz1biuQdz5KLKLUGn71Hd02QsqOA/7P77PrsrvYq2a9BE7LFo/7BPZXNc6ds43ssQfLmdr2sxH46+rWj+95rmTy/M/MOi2WZ6eyfauoGP5LDlfiF4CueLynqR80H4v5kjTnz6o9w+gtvzXhJgjoGSjClS/77OvF76doHtC78zV2S428IYHn27ye7UPGg+jonU21VWNfO7/QzG4bxQjr540bRjDA9g7n2pjKcKsZ12B7Ob6XKp3Pf17eP0s0vmipzLwo+2WLJhdn+tmeGX8j611s8ujNVXGyZaLrLp1HPEv4DJM5T2JZXV23TmTXZOqcA1XzTXUsfT+jCWuW5U1gCUmy/+GyxmabzlQHjN7hdkWQ7MXrRpi8+NkPOc4AmMC1W5T9hcG8LzvubCt7xPLTnncgyLfjxp8LA++dTmexBqn1l2JlrHOQKaiM+OdYRNMrKfWmxAlLXh5bz3Kp6TOUcAs69jGSevvewO1DfcuR7NthX9Uur20mdesXvli3nWkAylGXcHmPjpppt1x7qdJPwm1KWj6N+kPhO+NZvhMMbSCD/PcvTdA3xP4R813SnebLOplhs53e6AvAOdp49kaMU4NLVJGe4vwre2/KXPQc4slfWc+X0O2DlrPA7049U+P0DOaeJzl92Hepr+X9EXtLuZ69GG80RfG20VdLnnba3uYfbJYqYD1GeMsdq2En0lOkeUMF20iNlLX7G4zUN29k9g3IvgXHwUzt0v2RhIhD6wRO3wOfMACE6j303yXG1xBUMtb9hsy33RB2Ngtep7u9myhtNGIZ5NMP6DbWqr2T32cE0L8Us2jyZY7FYP5iZSXzTm+iOef6BN9qjcSnYvqZDZyq6h70z0t6AfDwu+iT4y8axqNrSx8IceF8+hzEku+lHc70RfmvYE4YsZn1VmN+hicSnj6FMQTVfmChD/Oyzn0jOgCee+81hzih+7RDMX/GMFL7dYxNLWj49YfsXWtLmJfq3lUphqMcNtzVazxuKv6ltuq6amq/cCTXXwjPgZqZsBJv5HyNxQ+NdpZxB+qq35jdGGYa3INH37Gt5zlJzlzb7Xwew8c+zufG2saZ1E35B2e5V7L+O6AXOv/Ij3eSXDVsbTiuZFi7/6jOcg8ZnIOCLR9+NeKfoM3KlZJHi+2ZOfZ2y56FuD/2rRYBpFrRV+kL1f0Jb32lTWaosTeJSPaahew6yP2jNfivq0juVSOEn/jvqrL20F4pmIsRTO+zdYTFdlCHRAsp2gDVPwUPqUxbMCdUWNpTZozxCXWB9wyDv3M+eLyvoN/I+rnR+yfJKj7C78Nzw3qawP8e1ZwXXB81yAwSecU5ozb4zqtZtnTOmlnXjWU73K0g8rOT9COwT9cJ7FBD5msWRFmeNdfVHFdMsmnHeqyxDAxd+/VJd7LHfT7cwpB3zELs18yFoTnuEYBT5ivwK+KR4QidhhLKYimWdqfTuafm21SUmzzdaysdGad+FFX958YQtpP5fOvJi6qMrNsnj4r8wW9BRkThSftdRXAbOO35odtYDtTe9Qx5AM8bx/rW+nQ/7itS+VddxsQePBv71oZjIXiuAY5sdTG+41P0sv3kWSzJwYaYJ78G6y+qKs+VmqmZ+rH8/U2u/6WW7q+7gOS4epAJ4ZkuER5k5RfXNt/Txo+QcW2l3vO3gnWjKXtpwt8yxfWRnGxkh/+5u5KST/Ros5eR80S0LfMUZC8JugXy36xebnqmy2sv6oY4gt7253b3dR/9c63J73DcVzG+suffUf6DlbxP8X2vBVl2csRvEG83P9bGfSPvTN6dvJFkNyP8+SwlfkGzEqdwPm2nG17QGeSTVPW1HvlS/1OHPoqdxVjIkSfT/69AWXZtxaXeUEMx9iQ+amEM115pu+0u7ZbWK86weyyVCnFTyB+iRg8pnJWD7hb7M8dX8xvwrwETn5Zrvo5zFHkOCt9CmL5hGuseITj3Wpp+DFFgOzmfdHRP8a8ywpr+AHjNkTzxSMqxDfeD99AdJzFjGuVd9+b/cgbrY7lYPQ/lmiacy4PvEcSFu09L0/7R5rOsez5NwK+ecJ3mQx+d3Nb/Ur79lpbKzm/X2t8xu49mp9TqMfNsRO2/i5m7nFxP8Rfis5f7W42b8sN2wu81dI/o/wK1fwHXZ2uI35K4TPt7iUqoy3DPk3KLPKbWbr6jc25vfzbqBonrS3mSqCJtgtVzDnsGRO43srav91mI/Hha/Me7ji8zx9zdJvO1tM1BE7c43kfqdvy6B/zwr+ink+Nb/ied9Q+FvMR/8T9ynV/SDnguA041/Z9tn78G1hPMob0ZeYD1NwaYsfe5r3KYR/hvsj4EjuR7PvrWX8jNa3vbyvqj1lo9mFqnMPEs+vzM7cjXde1G7F7T7UBJ4BRZ9L2wLKjZx/LXbioO3FX9rdlp/NPtPP4iEnWG6uI/RzqS4pNkdiLF/9U8x5qzmym3f6JMOPNjcncO6rfW63O2iTOfeF38j4EH171vbBooxjlwy17V2hGrxLLvou7HfR7GeMruCRloO3s73/km/nmo30kYnPIca669sinBeCc+wO/tvMJyP8Iuzvi/TtRXuj4TfGK4Y87ZA/2GRehMxLRP+lxbieY447tcMawBsE77O2uhr12gk8/d0Pc+8QzT20q0ueG9GnIR67rPmSTtDeKJplPE/p2zmsu8bku8xlJNmWmC+goflretp55DHevdVZrKD5E1tzDQlvBFjcRTfeZ5cMffhu1HG9uwSakPMtGvWKBp57azHOKcCs72cW83krxyTwEb+q5U1ty3u1miPLbsA4FM1Sq0ss7cCy7b9r98RbmT55hcU1rUKu6dbgE4mvZgytZO7EXEaCO2OfHSCauhbjcYvZFmaazXw5xkywFayi/q9v7+bdvRCrZjbn2ow/1PmiLvU60Vc1G/jbNl9qWd77lWY3aGK+mPlotzBOpvPtA/FsxByS6q/dGCdB7y3IOQUa2rUut1wizTAfZ+jbBLOpTqf9X+OqL/PziD4ab3DniH4r55FgPnIY9OTpZg8cYP6mATwfaf9dZrnNnwCfBeJTwc6tO+lTE34gfdbqr6YWj1GdMV0ab9Usv8Q/nGuiT4Rs+wU/YWf22par7XfOR9FU53lNY++86bdjmZNWY7ii5eSvgXJPij6FeU4k81fgH+yuLfiWitbtVqZDbrWcFXw8M7RhDd4xCbYXuy9Tku+AqL6P8T6UZP4afR3GCR+tLI4HZiN2GOakFdwKa1ewR5W29/saWD7kTOqHoI/ctbH3sAZSVxSfdyy2M4VnZ+HnoO5JgCPrJHNeBX+W5fwsy3eOxL8xY4cAsy79mJdJfDKpb+gscwXv94lnKeYlE/1+rvPi0x/1nSF4IO/Wib6wvdfTw9a9Mmjb8fIJFuC7Wvp2Oe0kwqea7bEoY+pkf2tB2aT7JVqsaSvaNyR/LN8NURzmDbzvH6PzHWOQVNattO9Jzh60/aov3rX9vbXl6Zpl8RIn7I5nUdvjki23xnazoXVgHKPK+ou5ECVDZ8szM9/iwF/EWApr/mG7N3HQ7rY3tJxmO5mbQvy3Mv85YK4zv1O3VH/9Y/7HSdQPJUO02aKr8K0W+XEu51lScDHLKXqT5RupxngGtflHgMMbOk/wXCD+U02H72S2gnNm95tmb3Hmmd/2Pd7lhO+VNDs41tUv96F9LqheQxnXcULrA8ZhNOBIXlnG1Qi/ncujZHvEzuxLLDa7O3MHaV1aw7gmfduQc1bj8EnwDLag+uYzuh/tHKdyE80vudjG23xrhxzzVZ01W2VV2kzE53vT2//hXqlzdAJyrzUUzUj69QSPw/rWSTL3470twOT5vd13+9jeDKpKnVDf1rS3uubxnrK+HU77p3j+ZPfF/sBHgf4Tuxv7LM/dattXGLcsPivtXuoxi7dMpl1F/M9b7sF7eTbUt4XNT9rDcjEdoP0zyMn74KrLHOZmBxy5h2jxD03MN7fG8kJ/ae8jXEOdU9++ZetPcZ6dtafUR1l7JHM1yB/WgQWMKxZ+G22VgtdbTNT3vIOv/Xcc9vFDkrmWnftOo0LH9O1m5sQQzTmzVyfyfpPqtdfy++01P2w6Y/vF5zDv12i8/c13iIQvYb7OJxn7obK28E0rwbNMV3yVd34/Vvye5fK6zfwsd9t9rj74tjjoI7YLyBOjbydzTArf0uxOJeyMnMk5KPrnzZ/SgT4CffsGc4IJXmn5tTZY/vknLE54OmPyRT+B7Rn42L2PctgvklTuLabjHTXbxUK371ncb2WLne5rOQFymY9OPLNNNx5lZ6tP+Jao6K9lbhDZVVbSzqNvt9t59jLmCZH8N0LmbqJZZL7mHYwHBp5tcr/lM6nAGGDguUfEMO5aeu+VqEuIM3na/NQLbS+bz3tq4nkb39gN9jTzj7ezXB9JoJkh2W6nPib8j+aX3Mc3PdVH6zmvxb+XxT+PsHizlxgPoLrHU+cXzzPgGebIGsvVcNpy7bZkzlLJw8fMV6sdmvO+gPCNLB57DH12wg8xG+8NlhdiNe80Sea7Tc/ZC3yQrTG+Db6hXnaX52qLd3qUMWMqawXv+KuO9zInvOCHaecRzW3MUanz5nt8Ly/knGdeF53XhtgZarLZe5+zfE1V7e7kVXb3rZCdKRbwfSLRl6O+rfr2t3tbc/get/B77Rzxk93hutvsWimQOdirk+2+bR+bO+1Q9/BWxTKef1X3VuZv/cPysl4D+ouSYQHkLJ6v9wEtRjqZNijhb0I7lxPcmfMRcGSdZEwmYPLpybwBapMLdue3NWMMRF/Y3naZjrYKMTMrzVY5AWt+onheablYh/FsIj5d+M5aOMOiXiF+4C6eB4X/kXZFreGlubbgW+5ZsZC/m+qygnZC8WyAdgjjsJTlcDiFX6Fe2Za3dgXkD33RjbFA4MM5ci36N8SD9bf7boMYp6GyVjBXp2SYZHeOynFPl5xv0d6rck+AcIHol1kuprGgWaK2asG839JhStg90IFmT+vNc6j4XDQd4wm+bxX2PvggQnzsdLvLf4L7vnguZ/5DlduFc1/1+o73tYXfbvtdSYu/GsZzdPBlWDzMtWjzQ5Jtltn8Y+0dtHWM+4KvIRI7Qf+Xyl1uObWaYmwE2/gce/PlYeYAEf/j5rt80+IPuwAOOQoG2Ju8x3iG0jgsYvN9IO2o2u+y8G2++N9pMn9jbdiJPkfJXI9n8DAeLG/Jjcw9ojY8bXeUhlGfF/977KwdbeeIWnRUfyL7FXMpA474O/i2teDJtHcBjtw7YE5vwc9QrwZMO1gKfbLa157h+/vi2cniOmqDJsi21+4Oz7G3MHrTt6hv14E+5NB7l2dqlTvF3sLYwTevRb8H9Q377AuMHRL+KdPP68MW0Uf4x7jGqo4lGQco/k8zFkg071ks+l12D+Iq7teib4v2D2NyA+cj8JyPK7D+LBCf+3hPQXBrvtUY9Bzzsd5iuSWftlxkD/Ferb5Ns5jkemYnTLI3y5ZTV5dspexdzrE8Nwn/Is9HglvRpqR2+NzeWKlm75e1pZ1fMrRE+wT5C1n822uoS4ibnWJ+t34Ws1TR/EevMsZP5d7KnAzif4zjRDSfMN+gfBANUJdjollv6+1Q2rXEZzDfFxP8kd3H2cj4HH1blPcdRPOF3e8Ya3raC5ZHN4s24U9lU+VZWPAZnoUBR9YT2HV7Il9fRB7uEZL5ceYjBQ3xX9n69hJtGqJZZ7Fbr9pbacdQSOGbLn17n51nl1i+wT8Y4y3+pTkfAXM+vmbxn3G088jm9in3Nclch+NfZ+o1nHfCD+aaprr32Yw+Ff5Kuyf1gMXlbuedILVJf/qptTeNog9R37Y0W8dTvAen+j5hMdjNOa/lC15i9ziaMn5A/CfyDpHgeWZj6WQ6xjHua4otv9biuguabWGN3acYzPfrJWd1+v5CjlmzU9UwPSqN76iqzf+1+I0rWS/gOfeH8D6L5HzO7rEmMt+X9p0ipoueA2HIe/Ai37gX/9aWF+Ip+k/F8zDvSoimJvdQ9Xt/5i1RXbJoDw93ECymcR/vz4pmKPP/Cx4JnifFc6i99XOF5fKqyz1I9C3w66zo34YOcF6yDaLdXnW5jbYdlTuGOT0+U1tx7oQxQD8m8Px2Ee38Omufs7NhbeqWoilhOnYB6k7CX2tx++OsvldYvt+37S7DOoyBeMnzMucOYPZdAcjTFHDknpT5JorbPj7e1p9bOKckQzt7H/Ym2l2FX8k8z4Iv2p2sy+xNn8eY80rlXmP+tQR7w/Ea+jtAw75eaXFNze3e3/0We/Owxb2M4Z0F1fcfi1HPt3vHbe2t/A8gW5gvn/C+qmRLsljorzjOhc83/Kfmy74P7RZ0+/3md+jCsae1bqfdJWnIey7iOcdiWVtaPpyRfC9AdWnDO0eCfzQ/YyPoNotuVtwpbezhfVvzj9TBt1v0bQL25TD3+/INdMnQH2tgnmi+5Nkz+GLs/ZeyzMsq+ll2hh3IWCzBC+zu/GyL1TzH95I0Nhpyj9NZMg7tcEQ8l9AOLBkq2VuZfSFbvvDLbPx3pb1U3460XLKdmH9e5a5irIK+vc/88gUtH3Ut3ivX3L+efmqtz93MFzALsp0Vn6ssr2xT5j7SnOpuft71ZuefiLKiTioOljGugEn/Jv5YTvjraJsSPolvxACO+FPsfkeO5VW42+IHHrG8HzNtTr1s8Veb0Y/BHnKBc19lFWQONMARGz7nsspdy3N0BdmBGR+ld5+noE36SObf7b5Sb9QxRd8OYd5X8Xzc7vIctjNFMu+qiz7K9Od/zJ7Wy+7zfmnyP2l+wLa8Vyt5bqf9RzyXmg12uvkITlk+tz60gUjOXRaf08/uU/exXKlP8Fwp/rWZs138H7dz+ilbGy/a+jPB4iHzIexayXyeZ0b1RSl7x+dN9Eueyh2N9twjOR+g30Hf/kr7g8bhBMZ7i6Y5Y10kZzrt6qIfS71a+P32zstexvDo22KW82Er9UnhH+J81LcjGAP2uc4m9u7YL2j/wsCTZjPflxHNZuYv0j3NOsDHCj+KuXxV3x2MY5HuWtpsgFstZnsufUzC34X2Lwc+5DmGc0fwQdPPh9k90JnmE1lvNt4Myyc2EfWKl2y1IVuwaTxoukEM86urjnVN/ml8+17fbuf8Ek0J5gmUbK3sDZps5irRvOjledJ4J1c27f6Wy+Jl2njDG1vmm76VdyRV7vW2p9ews89kvttbTWOD+WBFP9byDKxi/I/wDfgejXyCd1PPl/w1aPsFTHtOFcuz3c3ufffiuUb7S3XGOYv/NXbe30U7j3gu5FlSbXWU95jUd/fynpfk2cX1SH3Rw3IepnFflo/4c8asimcWvl2ib8vybTXAkfWZYyzkmuNbG5LnBouV3cb5KHmiLLdwa+aFEP5Ky1W4k/GloVyzE5ajb0X62GzLrZRrtosvGLegb0vz/Wu9AzXT3paazTsFkuFTey+yHW19IaaFsQfis8DyBx5kvKVo/qAdRvJ3w5g8E2DOa8E/WizuSL6V9oVyBkLvnaf3/dubPbwy11XRzDXb7EbGrwJP+r6mm9U1O/xj9L3qDawbuJaKvglzjonnM4yZF34u92XArONZ5qUXTXWzR31l+VUe4TtcWsdiTB9oyxg5fTufcapq2ydMD7zfbCAz7I7zdPP9TaVbI+TVhIBJki2L+WAl81TGGeocUZdvUIp+NX2ykmGQxWY0svzbPU2HHMFYDvEfYndhyqOtBojPn9a/fe2dtWYoN+iT3c2uXox36iXnG7yTJT7bLN/vFIyBLOEXW76jhmavXsxzpWhusVwfAxnDGeIbGe8h+d+3+wvjLH7sY4udSGRcltrhL7Mh1LI8G49wT5Q80+z8Oxlv6Iez2DK7S3KH5VV7BX0U2qQy30yRzf9evmEkmcvbO5s96YdSHa+0GOPhlne9lsW4xti9m7U8C6suN1hs6kHeYRfNm4DDfG9EHUb98p3Fh4+zvTvKYoca0J8l+gf5Rq3aOdVie/pxPZS+Pdja5DDPFKrX+ygr7Hfr7bxWgnd5xL+B5UN+ibnIJH9Pi8e41+IqG1gul8uYE0AyPMm7POKZxvg0yVDHcuX1g85/SPho3E07DDgSJ2Y2yWT0Ub7qu4R5sQTPoT9acAveyxb8Fe8Xq51r2Tl3E+VUPFgj5lEPsTfm32/Pu1ca2++Yzlnb7mZuYn4D1WuEvdk6grGap7T/WtvezXhL4HnO7eA5u0xf/cj87Av5BgroI29SQM4wB3+zu4T32B3nl+ljUrmn7f30M+bjyKEtQrbfZHsTpAxkSMS3kVhN3tvV2WeP+Z6a830f+VC+5T04yZZue/EW6h6S4Re7V/Wv7U3jqbOprFVcG0Vfk/ZtwaOZe0f8n0M7BN27nNkJm1jsYnPLx3Kv9WMNuzM1wfJA5jFWTWUlM/YyvKNq++9E80nVoP1N9N9A5qTwLpvlSehv9skRZotLpH1D/T4MMueo7jvwrtACwdfbPdnR9rbsYsaqqdwdllN0gN1xexYMVohmNv3U4lke324AzHnUl7kORLObsSWi2UdfsMrKM5ve/ZDzgGgm27uZ+5mHRHz+YB5v9dF42j2En2N+twlcx0QTwzO15PmZa5rwD1vMfGGLVVtl56xmvKev9aQe74yfVu4Ii4f8xnz6exhLCZrIusE8+cJPtJxLve3t48dYR82prpZrdL75Lx6xOMy77T2LAszbI3keNh/fFWbb6YT5Gy+aKyymtwXPNWGcmE3jXYslTkJdEvEt9fCltv6UsHFyHdqzverbBLprJ8ARvdHuFPTgXBPNUMgQdJ4RtOMJX8psZd2tHWbQNoL36yNrr/k+htEOoG9f5xxRudNAnyE43nJ09wJ9ltrhfsbDa82fZnkFv7P3FOpbzt4hvDcqnq3RpyHeuKG9Y/WXvXf8rb2F/YP5x1+1M2NHxvyoDdeZDaQu1oEZqtc8e/vgPebbke/1FN8p07lsnq0DD9LHrbl8xM4UhWysnrQcUNvsbHKabygLP9befxnLWFnVPZVnQ9EMYjyb5NxseTJ3WazCYPra9O11puf8ZjFI2xjrIpqadjdtNNoh0LxgdsiLXGfUjy/R3qhv/7I1cDx1BtHs4Y/gCxZvXM/G+R7PywE5D6le9dCeQSfPZfuITw3GtwgubXaYeywWaxDf1dIc32V33B5Avc5pH/mQZ95wf9zijh6mX0D1Gk4dQ/KsZ1/oTly8nb8e5J0O0R+yMZZjfvAyZvvdYnM2y2xi5y1+soD5Q88wpkX85zKvjs7sv1EPCWuL5VFsZb6/vbwzojcrC9Mm+eWl9WQJ18bwJgLP8sBH2p9lKV7rDO0twPPbt6g7Ce5KfUP0MebTOWV3tT63HDvFzG/YmW8Q6Ns1PN8JLgX6EOf5FXUMlfUh41cFR5tt/3vmYAc+8nY/c55Ip7qDtqxCit01n/gBzlnxOcX6yvaSxPtNGj+pFitSnH468b9Ie7vkXGR3A59krhvhE6mPqe4z7a2ly0z/LGtj7E36rWrI5sbzl/h8xnc91P5TuE5K5rUWq3Y/350X/WnGrgSYeUVkS29CP77Kepd+RvXRB9z3hR9vOUOW2d2i3+mzU3xmBvUWydDRbEczLEffh3ZHPod5BiTPY3aWzOA9EeF78iysd1huZ1xByF9kZ8mnuXaJPpZrlOBOjAWVPMPpQ1QfJdKHKPgo/fuiv5W5AoRvZWe6JPw6Ij776I8QzMd7Tgp+m349jaufIPMZ8alNG6D4n+C5Q/R3sh/Vd3Nt7+gKfJhfcbyXLfqPLBd6C8bthJwktiZM4vv1X0n3g5yh3EJmE6tg8SdlaEvRXDtgvqfJ9oZsc8sLlGRzagNtNSprN88sgCNzhHXRnYs49HusaJ7nG46AI2dYs6U8x7gafVvO9tnHLYZwjJ2P5jGHm/hMY55JwBHfJWRoL/gH80NtYsyq6F+1e8QjzbbTyOKBqzA2WzI3Yxyp4EzOa8l5ueXuqM/xKd0pDTJkqaw/zV/wLPhME58Jpp/vNjmfNnvy1bz/orIepP9R8DHGG6hNitjZvLidrR4zv/y/tANInvssR/GnFmNfyM7vhW39acR5rW8X2X2fQYxhU1ulm83nVatvU/DZIpmzmXND68ME5tWRrnUPdQzxH8icq5JnjeVuirfcmOMYE6Xx39n05wF8619lPWQ2nzb2Ztmzdj/rEH4dEn0KzyaSYZW1YWPLy5Fp9tvepgu9QjuedPsUi9nowrsw4l/V4rqP292Bc/Y24nv06SgeoCbWk9P6dqzF8T5u+m0jO6NlMZd4eHcDc/+MxtUCu/tzF3Pga6+cbHbaIXbn6xU/v9Dvo7F6hcVwtsF4OCd8EcY2hPeCLR7mUVuTc82PMJG2btXrCOeO5GzFXIWKXXnYfMSzLH9mHvUWfbuAc7OE5injvqTDHwSi8Ne6D8h4CcFt7N70aOoVwEdiV8wH18XmYx3mLQFNJBaFfh/BM80vU8LmyEnTZ2aBvrrot1ourMbMwSh74GCLLRlCvUj0W2xvPc83jkNctMn2sef041kP33Ktu8zy2V5meewHMSdPeMeEb5OprN+trzMYY6Y2yeObqip3mr0LP9viwVbgTdJO4hNtsRlHGGsqX1Ixa58Zdo/pWt4hwre0bwy0u2PNzIaw0853bZkrQ/3YjrqNyh1g7xTfZfbbkrQnq02mMx5YcLz5aofT3q76zjfdIMbuhz4I+YPfrTP6LrzR0NXONbG0S0h3Omvn0JsZMyyZd9p5rRRzC2sP3cX7X6rLLYw/lDwP2lvw+VznwxnHYhGr2L2na2mfUR1Xc28Idh57y6+zvYlzwPSED+xc+azFPwwy+8Zz9ENJttlW920Wm5Fsvo8xkPmY6D9g/J74p1luhDl8K0dnk1/tzgLrwP+SBPOnJdcH6mQ8x+vvkXWIY4Njgu1HWz33S8YC0594KVURr8tG8HRX8f9MMdWM9pjUmKgE/FyLn79SYqK+wM8O/CzETzp+muCnDH5+HRQTlYefwpH/ChQoXDiq5ZLNb0RdXqKDJLktqmUuEWuKBEyHkWOT04emxA1OTx6SGTUoa3xchWZxY7IzszJTB2XUqVd/eO3+YxP6J/av3X/QqJFZqeOz+o8c1T9jTOqgUSMyojJT0wfHZaVmZsUNTh6anpoS1XbUmListKGZcZnJIzLSU6tf+kf9ujUGTshKjcvMGjN05JC4cUPT0+MGpsZlZ6amxCVnxg0dmZGdFZeSnJUcFR8RI65yXNc2t3ZC6bfX7t+2Y8t2Xft369WpTf87Wna9vUpcs2b/819vveuOTl3adO3a4a47Idig4akTWJU7u3fsGJWRPdD/OSo7iyWGf14q/7/+MT115H8wmUOHODwyOSt7TOp/MGgKNN9//bp+4n9lbv8ekTkkLTkzrW6d/8agebO4hLjKleMu/atps7i6Uf9jL6QOGpGdnvWfzhia2X9g9tD0rPjK6LoazcNfs8ZX+f9+PiR15P/CIkJBNhX+Rz6DU/ndxNQxo+IrD0mt0RyEVf9vy6Ey8f/PrmzVoZv3VZW4FnF162bHNY6rXy+7Ckbopf/aR7W8kIuRWqBAVMvV2wBUODd3/Ju7fyherUjVkxnz6/x5Q6eDBypsGldt3cc7iz7x7fBTraZFtZy2HYR3Lil74ep7pheMWrX4wS/yt18RdXF5wWKXz74yqk+Vor0P7r48Kv+PKYNfnMAUbDF/zT9SLOrA0pbd0+YWjtpZ9u8NxUteGbV/310nureNjnqy8rgTjSHHSXJN6JaGATwoOT15TNzgMMrHx+FX9sjhI0eNGym5kTTh33//+ffff6NabtyB72IiF6zgZ3njRI0vfnvtlmLgR3zsD7tfrzVmzRVRBVtfzL58cYGomzq3QVVzduJvSS1b1j8yr1/BqL9fKDT3/LAro/K37gbLq6LAFv+F/2OxidAdbfHDtIp7l2W+UPW7S39A2e+STzmV/dKd4zYtjfo58dJlL65HLRfsUtvmEYh55fS+yzZO7TYqPufKAh9MufV0VMvjxK8vUP3ubc02vJX64YjErGIHL4ufy5r5f7VzP26zLO6RM1PfODM6du6mZmW+m7Hw9IL0M28NP/ZUhaOzEkZPPTB3687RZV4t+uvKLcVLVTzw3woas/em6yY/WvCz8YOnx31bsWap3imlcgqWr7zuZEKf/R2fHtT1hwKLR8enl4gq3Wdpz1qdi0V1OLfim8TE6KhvJ7T+quhobJ2p1YZ9MxH1eY71KRvVckMEKBfVcg+B0pHnSNUzhM8sKhU1uETGmFEp2YNSx2QWiAY4KDUTKxGWqELR3Qdmj8zKjhuUnjxySMnaiTUTaibUqJ0dQdauWbvouOR0zIaiCTVrN6qZED0uOXNEjYFDR6ZgrpRKqFmnZoNGcfGNBiakJCYMapBcJariVVnJY4akZmGyRJaMzALVrhqRnZU8MD21xpD0UQOT0zP/D6UhBWI=';\n","import { base64Decode, unzlibSync } from '@polkadot/wasm-util';\nimport { bytes, lenIn, lenOut } from './cjs/bytes.js';\nexport { packageInfo } from './packageInfo.js';\n/**\n * @name wasmBytes\n * @description\n * The decoded WASM interface as exposed by this package.\n *\n * The build process will output into cjs/* into a compressed base64 format.\n * Upon loading the exposed bytes will be decoded and decompressed from this\n * specific format and returned.\n */\nexport const wasmBytes = /*#__PURE__*/ unzlibSync(base64Decode(bytes, new Uint8Array(lenIn)), new Uint8Array(lenOut));\n","import { createWasmFn } from '@polkadot/wasm-bridge';\nimport { wasmBytes } from '@polkadot/wasm-crypto-wasm';\nexport { packageInfo } from './packageInfo.js';\n/**\n * @name createWasm\n * @description\n * Creates an interface using only WASM\n */\nexport const createWasm = /*#__PURE__*/ createWasmFn('crypto', wasmBytes, null);\n","import { Bridge } from '@polkadot/wasm-bridge';\nimport { createWasm } from '@polkadot/wasm-crypto-init';\n/**\n * @name bridge\n * @description\n * The JS <-> WASM bridge that is in operation. For the specific package\n * it is a global, i.e. all operations happens on this specific bridge\n */\nexport const bridge = new Bridge(createWasm);\n/**\n * @name initBridge\n * @description\n * Creates a new bridge interface with the (optional) initialization function\n */\nexport async function initBridge(createWasm) {\n return bridge.init(createWasm);\n}\n","import { bridge, initBridge } from './init.js';\nexport { packageInfo } from './packageInfo.js';\nexport { bridge };\n/**\n * @internal\n * @description\n * This create an extenal interface function from the signature, all the while checking\n * the actual bridge wasm interface to ensure it has been initialized.\n *\n * This means that we can call it\n *\n * withWasm(wasm: WasmCryptoInstance, a: number, b: string) => Uint8Array\n *\n * and in this case it will create an interface function with the signarure\n *\n * (a: number, b: string) => Uint8Array\n */\nfunction withWasm(fn) {\n return (...params) => {\n if (!bridge.wasm) {\n throw new Error('The WASM interface has not been initialized. Ensure that you wait for the initialization Promise with waitReady() from @polkadot/wasm-crypto (or cryptoWaitReady() from @polkadot/util-crypto) before attempting to use WASM-only interfaces.');\n }\n return fn(bridge.wasm, ...params);\n };\n}\nexport const bip39Generate = /*#__PURE__*/ withWasm((wasm, words) => {\n wasm.ext_bip39_generate(8, words);\n return bridge.resultString();\n});\nexport const bip39ToEntropy = /*#__PURE__*/ withWasm((wasm, phrase) => {\n wasm.ext_bip39_to_entropy(8, ...bridge.allocString(phrase));\n return bridge.resultU8a();\n});\nexport const bip39ToMiniSecret = /*#__PURE__*/ withWasm((wasm, phrase, password) => {\n wasm.ext_bip39_to_mini_secret(8, ...bridge.allocString(phrase), ...bridge.allocString(password));\n return bridge.resultU8a();\n});\nexport const bip39ToSeed = /*#__PURE__*/ withWasm((wasm, phrase, password) => {\n wasm.ext_bip39_to_seed(8, ...bridge.allocString(phrase), ...bridge.allocString(password));\n return bridge.resultU8a();\n});\nexport const bip39Validate = /*#__PURE__*/ withWasm((wasm, phrase) => {\n const ret = wasm.ext_bip39_validate(...bridge.allocString(phrase));\n return ret !== 0;\n});\nexport const ed25519KeypairFromSeed = /*#__PURE__*/ withWasm((wasm, seed) => {\n wasm.ext_ed_from_seed(8, ...bridge.allocU8a(seed));\n return bridge.resultU8a();\n});\nexport const ed25519Sign = /*#__PURE__*/ withWasm((wasm, pubkey, seckey, message) => {\n wasm.ext_ed_sign(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(seckey), ...bridge.allocU8a(message));\n return bridge.resultU8a();\n});\nexport const ed25519Verify = /*#__PURE__*/ withWasm((wasm, signature, message, pubkey) => {\n const ret = wasm.ext_ed_verify(...bridge.allocU8a(signature), ...bridge.allocU8a(message), ...bridge.allocU8a(pubkey));\n return ret !== 0;\n});\nexport const secp256k1FromSeed = /*#__PURE__*/ withWasm((wasm, seckey) => {\n wasm.ext_secp_from_seed(8, ...bridge.allocU8a(seckey));\n return bridge.resultU8a();\n});\nexport const secp256k1Compress = /*#__PURE__*/ withWasm((wasm, pubkey) => {\n wasm.ext_secp_pub_compress(8, ...bridge.allocU8a(pubkey));\n return bridge.resultU8a();\n});\nexport const secp256k1Expand = /*#__PURE__*/ withWasm((wasm, pubkey) => {\n wasm.ext_secp_pub_expand(8, ...bridge.allocU8a(pubkey));\n return bridge.resultU8a();\n});\nexport const secp256k1Recover = /*#__PURE__*/ withWasm((wasm, msgHash, sig, recovery) => {\n wasm.ext_secp_recover(8, ...bridge.allocU8a(msgHash), ...bridge.allocU8a(sig), recovery);\n return bridge.resultU8a();\n});\nexport const secp256k1Sign = /*#__PURE__*/ withWasm((wasm, msgHash, seckey) => {\n wasm.ext_secp_sign(8, ...bridge.allocU8a(msgHash), ...bridge.allocU8a(seckey));\n return bridge.resultU8a();\n});\nexport const sr25519DeriveKeypairHard = /*#__PURE__*/ withWasm((wasm, pair, cc) => {\n wasm.ext_sr_derive_keypair_hard(8, ...bridge.allocU8a(pair), ...bridge.allocU8a(cc));\n return bridge.resultU8a();\n});\nexport const sr25519DeriveKeypairSoft = /*#__PURE__*/ withWasm((wasm, pair, cc) => {\n wasm.ext_sr_derive_keypair_soft(8, ...bridge.allocU8a(pair), ...bridge.allocU8a(cc));\n return bridge.resultU8a();\n});\nexport const sr25519DerivePublicSoft = /*#__PURE__*/ withWasm((wasm, pubkey, cc) => {\n wasm.ext_sr_derive_public_soft(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(cc));\n return bridge.resultU8a();\n});\nexport const sr25519KeypairFromSeed = /*#__PURE__*/ withWasm((wasm, seed) => {\n wasm.ext_sr_from_seed(8, ...bridge.allocU8a(seed));\n return bridge.resultU8a();\n});\nexport const sr25519Sign = /*#__PURE__*/ withWasm((wasm, pubkey, secret, message) => {\n wasm.ext_sr_sign(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(secret), ...bridge.allocU8a(message));\n return bridge.resultU8a();\n});\nexport const sr25519Verify = /*#__PURE__*/ withWasm((wasm, signature, message, pubkey) => {\n const ret = wasm.ext_sr_verify(...bridge.allocU8a(signature), ...bridge.allocU8a(message), ...bridge.allocU8a(pubkey));\n return ret !== 0;\n});\nexport const sr25519Agree = /*#__PURE__*/ withWasm((wasm, pubkey, secret) => {\n wasm.ext_sr_agree(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(secret));\n return bridge.resultU8a();\n});\nexport const vrfSign = /*#__PURE__*/ withWasm((wasm, secret, context, message, extra) => {\n wasm.ext_vrf_sign(8, ...bridge.allocU8a(secret), ...bridge.allocU8a(context), ...bridge.allocU8a(message), ...bridge.allocU8a(extra));\n return bridge.resultU8a();\n});\nexport const vrfVerify = /*#__PURE__*/ withWasm((wasm, pubkey, context, message, extra, outAndProof) => {\n const ret = wasm.ext_vrf_verify(...bridge.allocU8a(pubkey), ...bridge.allocU8a(context), ...bridge.allocU8a(message), ...bridge.allocU8a(extra), ...bridge.allocU8a(outAndProof));\n return ret !== 0;\n});\nexport const blake2b = /*#__PURE__*/ withWasm((wasm, data, key, size) => {\n wasm.ext_blake2b(8, ...bridge.allocU8a(data), ...bridge.allocU8a(key), size);\n return bridge.resultU8a();\n});\nexport const hmacSha256 = /*#__PURE__*/ withWasm((wasm, key, data) => {\n wasm.ext_hmac_sha256(8, ...bridge.allocU8a(key), ...bridge.allocU8a(data));\n return bridge.resultU8a();\n});\nexport const hmacSha512 = /*#__PURE__*/ withWasm((wasm, key, data) => {\n wasm.ext_hmac_sha512(8, ...bridge.allocU8a(key), ...bridge.allocU8a(data));\n return bridge.resultU8a();\n});\nexport const keccak256 = /*#__PURE__*/ withWasm((wasm, data) => {\n wasm.ext_keccak256(8, ...bridge.allocU8a(data));\n return bridge.resultU8a();\n});\nexport const keccak512 = /*#__PURE__*/ withWasm((wasm, data) => {\n wasm.ext_keccak512(8, ...bridge.allocU8a(data));\n return bridge.resultU8a();\n});\nexport const pbkdf2 = /*#__PURE__*/ withWasm((wasm, data, salt, rounds) => {\n wasm.ext_pbkdf2(8, ...bridge.allocU8a(data), ...bridge.allocU8a(salt), rounds);\n return bridge.resultU8a();\n});\nexport const scrypt = /*#__PURE__*/ withWasm((wasm, password, salt, log2n, r, p) => {\n wasm.ext_scrypt(8, ...bridge.allocU8a(password), ...bridge.allocU8a(salt), log2n, r, p);\n return bridge.resultU8a();\n});\nexport const sha256 = /*#__PURE__*/ withWasm((wasm, data) => {\n wasm.ext_sha256(8, ...bridge.allocU8a(data));\n return bridge.resultU8a();\n});\nexport const sha512 = /*#__PURE__*/ withWasm((wasm, data) => {\n wasm.ext_sha512(8, ...bridge.allocU8a(data));\n return bridge.resultU8a();\n});\nexport const twox = /*#__PURE__*/ withWasm((wasm, data, rounds) => {\n wasm.ext_twox(8, ...bridge.allocU8a(data), rounds);\n return bridge.resultU8a();\n});\nexport function isReady() {\n return !!bridge.wasm;\n}\nexport async function waitReady() {\n try {\n const wasm = await initBridge();\n return !!wasm;\n }\n catch {\n return false;\n }\n}\n","/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities\n/**\n * @__NO_SIDE_EFFECTS__\n */\nexport function assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`Wrong integer: ${n}`);\n}\nfunction isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n const id = (a) => a;\n // Wrap call in closure so JIT can inline calls\n const wrap = (a, b) => (c) => a(b(c));\n // Construct chain of args[-1].encode(args[-2].encode([...]))\n const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n // Construct chain of args[0].decode(args[1].decode(...))\n const decode = args.map((x) => x.decode).reduce(wrap, id);\n return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(alphabet) {\n return {\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n if (typeof separator !== 'string')\n throw new Error('join separator should be string');\n return {\n encode: (from) => {\n if (!Array.isArray(from) || (from.length && typeof from[0] !== 'string'))\n throw new Error('join.encode input should be array of strings');\n for (let i of from)\n if (typeof i !== 'string')\n throw new Error(`join.encode: non-string input=${i}`);\n return from.join(separator);\n },\n decode: (to) => {\n if (typeof to !== 'string')\n throw new Error('join.decode input should be string');\n return to.split(separator);\n },\n };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n assertNumber(bits);\n if (typeof chr !== 'string')\n throw new Error('padding chr should be string');\n return {\n encode(data) {\n if (!Array.isArray(data) || (data.length && typeof data[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of data)\n if (typeof i !== 'string')\n throw new Error(`padding.encode: non-string input=${i}`);\n while ((data.length * bits) % 8)\n data.push(chr);\n return data;\n },\n decode(input) {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('padding.encode input should be array of strings');\n for (let i of input)\n if (typeof i !== 'string')\n throw new Error(`padding.decode: non-string input=${i}`);\n let end = input.length;\n if ((end * bits) % 8)\n throw new Error('Invalid padding: string should have whole number of bytes');\n for (; end > 0 && input[end - 1] === chr; end--) {\n if (!(((end - 1) * bits) % 8))\n throw new Error('Invalid padding: string has too much padding');\n }\n return input.slice(0, end);\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n if (typeof fn !== 'function')\n throw new Error('normalize fn should be function');\n return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix(data, from, to) {\n // base 1 is impossible\n if (from < 2)\n throw new Error(`convertRadix: wrong from=${from}, base cannot be less than 2`);\n if (to < 2)\n throw new Error(`convertRadix: wrong to=${to}, base cannot be less than 2`);\n if (!Array.isArray(data))\n throw new Error('convertRadix: data should be array');\n if (!data.length)\n return [];\n let pos = 0;\n const res = [];\n const digits = Array.from(data);\n digits.forEach((d) => {\n assertNumber(d);\n if (d < 0 || d >= from)\n throw new Error(`Wrong integer: ${d}`);\n });\n while (true) {\n let carry = 0;\n let done = true;\n for (let i = pos; i < digits.length; i++) {\n const digit = digits[i];\n const digitBase = from * carry + digit;\n if (!Number.isSafeInteger(digitBase) ||\n (from * carry) / from !== carry ||\n digitBase - digit !== from * carry) {\n throw new Error('convertRadix: carry overflow');\n }\n carry = digitBase % to;\n const rounded = Math.floor(digitBase / to);\n digits[i] = rounded;\n if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n throw new Error('convertRadix: carry overflow');\n if (!done)\n continue;\n else if (!rounded)\n pos = i;\n else\n done = false;\n }\n res.push(carry);\n if (done)\n break;\n }\n for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n res.push(0);\n return res.reverse();\n}\nconst gcd = /* @__NO_SIDE_EFFECTS__ */ (a, b) => (!b ? a : gcd(b, a % b));\nconst radix2carry = /*@__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\n/**\n * Implemented with numbers, because BigInt is 5x slower\n * @__NO_SIDE_EFFECTS__\n */\nfunction convertRadix2(data, from, to, padding) {\n if (!Array.isArray(data))\n throw new Error('convertRadix2: data should be array');\n if (from <= 0 || from > 32)\n throw new Error(`convertRadix2: wrong from=${from}`);\n if (to <= 0 || to > 32)\n throw new Error(`convertRadix2: wrong to=${to}`);\n if (radix2carry(from, to) > 32) {\n throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n }\n let carry = 0;\n let pos = 0; // bitwise position in current element\n const mask = 2 ** to - 1;\n const res = [];\n for (const n of data) {\n assertNumber(n);\n if (n >= 2 ** from)\n throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n carry = (carry << from) | n;\n if (pos + from > 32)\n throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n pos += from;\n for (; pos >= to; pos -= to)\n res.push(((carry >> (pos - to)) & mask) >>> 0);\n carry &= 2 ** pos - 1; // clean carry, otherwise it will cause overflow\n }\n carry = (carry << (to - pos)) & mask;\n if (!padding && pos >= from)\n throw new Error('Excess padding');\n if (!padding && carry)\n throw new Error(`Non-zero padding: ${carry}`);\n if (padding && pos > 0)\n res.push(carry >>> 0);\n return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n assertNumber(num);\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix.encode input should be Uint8Array');\n return convertRadix(Array.from(bytes), 2 ** 8, num);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix.decode input should be array of numbers');\n return Uint8Array.from(convertRadix(digits, num, 2 ** 8));\n },\n };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n assertNumber(bits);\n if (bits <= 0 || bits > 32)\n throw new Error('radix2: bits should be in (0..32]');\n if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n throw new Error('radix2: carry overflow');\n return {\n encode: (bytes) => {\n if (!isBytes(bytes))\n throw new Error('radix2.encode input should be Uint8Array');\n return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n },\n decode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('radix2.decode input should be array of numbers');\n return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n },\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction unsafeWrapper(fn) {\n if (typeof fn !== 'function')\n throw new Error('unsafeWrapper fn should be function');\n return function (...args) {\n try {\n return fn.apply(null, args);\n }\n catch (e) { }\n };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction checksum(len, fn) {\n assertNumber(len);\n if (typeof fn !== 'function')\n throw new Error('checksum fn should be function');\n return {\n encode(data) {\n if (!isBytes(data))\n throw new Error('checksum.encode: input should be Uint8Array');\n const checksum = fn(data).slice(0, len);\n const res = new Uint8Array(data.length + len);\n res.set(data);\n res.set(checksum, data.length);\n return res;\n },\n decode(data) {\n if (!isBytes(data))\n throw new Error('checksum.decode: input should be Uint8Array');\n const payload = data.slice(0, -len);\n const newChecksum = fn(payload).slice(0, len);\n const oldChecksum = data.slice(-len);\n for (let i = 0; i < len; i++)\n if (newChecksum[i] !== oldChecksum[i])\n throw new Error('Invalid checksum');\n return payload;\n },\n };\n}\n// prettier-ignore\nexport const utils = {\n alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\nexport const base16 = /* @__PURE__ */ chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nexport const base32 = /* @__PURE__ */ chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nexport const base32hex = /* @__PURE__ */ chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nexport const base32crockford = /* @__PURE__ */ chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\nexport const base64 = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\nexport const base64nopad = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join(''));\nexport const base64url = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nexport const base64urlnopad = /* @__PURE__ */ chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = (abc) => chain(radix(58), alphabet(abc), join(''));\nexport const base58 = /* @__PURE__ */ genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nexport const base58flickr = /* @__PURE__ */ genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nexport const base58xrp = /* @__PURE__ */ genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// xmr ver is done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n// Block encoding significantly reduces quadratic complexity of base58.\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\nexport const base58xmr = {\n encode(data) {\n let res = '';\n for (let i = 0; i < data.length; i += 8) {\n const block = data.subarray(i, i + 8);\n res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n }\n return res;\n },\n decode(str) {\n let res = [];\n for (let i = 0; i < str.length; i += 11) {\n const slice = str.slice(i, i + 11);\n const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n const block = base58.decode(slice);\n for (let j = 0; j < block.length - blockLen; j++) {\n if (block[j] !== 0)\n throw new Error('base58xmr: wrong padding');\n }\n res = res.concat(Array.from(block.slice(block.length - blockLen)));\n }\n return Uint8Array.from(res);\n },\n};\nexport const createBase58check = /* @__PURE__ */ (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\n// legacy export, bad name\nexport const base58check = createBase58check;\nconst BECH_ALPHABET = /* @__PURE__ */ chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bech32Polymod(pre) {\n const b = pre >> 25;\n let chk = (pre & 0x1ffffff) << 5;\n for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n if (((b >> i) & 1) === 1)\n chk ^= POLYMOD_GENERATORS[i];\n }\n return chk;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n const len = prefix.length;\n let chk = 1;\n for (let i = 0; i < len; i++) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n throw new Error(`Invalid prefix (${prefix})`);\n chk = bech32Polymod(chk) ^ (c >> 5);\n }\n chk = bech32Polymod(chk);\n for (let i = 0; i < len; i++)\n chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n for (let v of words)\n chk = bech32Polymod(chk) ^ v;\n for (let i = 0; i < 6; i++)\n chk = bech32Polymod(chk);\n chk ^= encodingConst;\n return BECH_ALPHABET.encode(convertRadix2([chk % 2 ** 30], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n const _words = radix2(5);\n const fromWords = _words.decode;\n const toWords = _words.encode;\n const fromWordsUnsafe = unsafeWrapper(fromWords);\n function encode(prefix, words, limit = 90) {\n if (typeof prefix !== 'string')\n throw new Error(`bech32.encode prefix should be string, not ${typeof prefix}`);\n if (!Array.isArray(words) || (words.length && typeof words[0] !== 'number'))\n throw new Error(`bech32.encode words should be array of numbers, not ${typeof words}`);\n if (prefix.length === 0)\n throw new TypeError(`Invalid prefix length ${prefix.length}`);\n const actualLength = prefix.length + 7 + words.length;\n if (limit !== false && actualLength > limit)\n throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n const lowered = prefix.toLowerCase();\n const sum = bechChecksum(lowered, words, ENCODING_CONST);\n return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n }\n function decode(str, limit = 90) {\n if (typeof str !== 'string')\n throw new Error(`bech32.decode input should be string, not ${typeof str}`);\n if (str.length < 8 || (limit !== false && str.length > limit))\n throw new TypeError(`Wrong string length: ${str.length} (${str}). Expected (8..${limit})`);\n // don't allow mixed case\n const lowered = str.toLowerCase();\n if (str !== lowered && str !== str.toUpperCase())\n throw new Error(`String must be lowercase or uppercase`);\n const sepIndex = lowered.lastIndexOf('1');\n if (sepIndex === 0 || sepIndex === -1)\n throw new Error(`Letter \"1\" must be present between prefix and data only`);\n const prefix = lowered.slice(0, sepIndex);\n const data = lowered.slice(sepIndex + 1);\n if (data.length < 6)\n throw new Error('Data must be at least 6 characters long');\n const words = BECH_ALPHABET.decode(data).slice(0, -6);\n const sum = bechChecksum(prefix, words, ENCODING_CONST);\n if (!data.endsWith(sum))\n throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n return { prefix, words };\n }\n const decodeUnsafe = unsafeWrapper(decode);\n function decodeToBytes(str) {\n const { prefix, words } = decode(str, false);\n return { prefix, words, bytes: fromWords(words) };\n }\n return { encode, decode, decodeToBytes, decodeUnsafe, fromWords, fromWordsUnsafe, toWords };\n}\nexport const bech32 = /* @__PURE__ */ genBech32('bech32');\nexport const bech32m = /* @__PURE__ */ genBech32('bech32m');\nexport const utf8 = {\n encode: (data) => new TextDecoder().decode(data),\n decode: (str) => new TextEncoder().encode(str),\n};\nexport const hex = /* @__PURE__ */ chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n if (typeof s !== 'string' || s.length % 2)\n throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n return s.toLowerCase();\n}));\n// prettier-ignore\nconst CODERS = {\n utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\nexport const bytesToString = (type, bytes) => {\n if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (!isBytes(bytes))\n throw new TypeError('bytesToString() expects Uint8Array');\n return CODERS[type].encode(bytes);\n};\nexport const str = bytesToString; // as in python, but for bytes only\nexport const stringToBytes = (type, str) => {\n if (!CODERS.hasOwnProperty(type))\n throw new TypeError(coderTypeError);\n if (typeof str !== 'string')\n throw new TypeError('stringToBytes() expects string');\n return CODERS[type].decode(str);\n};\nexport const bytes = stringToBytes;\n//# sourceMappingURL=index.js.map","import { u8aToU8a } from '@polkadot/util';\n/** @internal */\nexport function createDecode({ coder, ipfs }, validate) {\n return (value, ipfsCompat) => {\n validate(value, ipfsCompat);\n return coder.decode(ipfs && ipfsCompat\n ? value.substring(1)\n : value);\n };\n}\n/** @internal */\nexport function createEncode({ coder, ipfs }) {\n return (value, ipfsCompat) => {\n const out = coder.encode(u8aToU8a(value));\n return ipfs && ipfsCompat\n ? `${ipfs}${out}`\n : out;\n };\n}\n/** @internal */\nexport function createIs(validate) {\n return (value, ipfsCompat) => {\n try {\n return validate(value, ipfsCompat);\n }\n catch {\n return false;\n }\n };\n}\n/** @internal */\nexport function createValidate({ chars, ipfs, type, withPadding }) {\n return (value, ipfsCompat) => {\n if (typeof value !== 'string') {\n throw new Error(`Expected ${type} string input`);\n }\n else if (ipfs && ipfsCompat && !value.startsWith(ipfs)) {\n throw new Error(`Expected ipfs-compatible ${type} to start with '${ipfs}'`);\n }\n for (let i = (ipfsCompat ? 1 : 0), count = value.length; i < count; i++) {\n if (chars.includes(value[i])) {\n // all ok, character found\n }\n else if (withPadding && value[i] === '=') {\n if (i === count - 1) {\n // last character, everything ok\n }\n else if (value[i + 1] === '=') {\n // next one is also padding, sequence ok\n }\n else {\n throw new Error(`Invalid ${type} padding sequence \"${value[i]}${value[i + 1]}\" at index ${i}`);\n }\n }\n else {\n throw new Error(`Invalid ${type} character \"${value[i]}\" (0x${value.charCodeAt(i).toString(16)}) at index ${i}`);\n }\n }\n return true;\n };\n}\n","import { base58 } from '@scure/base';\nimport { createDecode, createEncode, createIs, createValidate } from '../base32/helpers.js';\nconst config = {\n chars: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz',\n coder: base58,\n ipfs: 'z',\n type: 'base58'\n};\n/**\n * @name base58Validate\n * @summary Validates a base58 value.\n * @description\n * Validates that the supplied value is valid base58, throwing exceptions if not\n */\nexport const base58Validate = /*#__PURE__*/ createValidate(config);\n/**\n * @name base58Decode\n * @summary Decodes a base58 value.\n * @description\n * From the provided input, decode the base58 and return the result as an `Uint8Array`.\n */\nexport const base58Decode = /*#__PURE__*/ createDecode(config, base58Validate);\n/**\n* @name base58Encode\n* @summary Creates a base58 value.\n* @description\n* From the provided input, create the base58 and return the result as a string.\n*/\nexport const base58Encode = /*#__PURE__*/ createEncode(config);\n/**\n* @name isBase58\n* @description Checks if the input is in base58, returning true/false\n*/\nexport const isBase58 = /*#__PURE__*/ createIs(base58Validate);\n","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`positive integer expected, not ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`boolean expected, not ${b}`);\n}\n// copied from utils\nexport function isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nfunction bytes(b, ...lengths) {\n if (!isBytes(b))\n throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Uint8Array expected of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(h) {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(h.outputLen);\n number(h.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nimport { bytes as abytes } from './_assert.js';\n// export { isBytes } from './_assert.js';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nexport function isBytes(a) {\n return (a instanceof Uint8Array ||\n (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// The rotate left (circular left shift) operation for uint32\nexport const rotl = (word, shift) => (word << shift) | ((word >>> (32 - shift)) >>> 0);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nexport const byteSwap = (word) => ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff);\n// Conditionally byte swap if on a big-endian platform\nexport const byteSwapIfBE = isLE ? (n) => n : (n) => byteSwap(n);\n// In place byte swap for Uint32Array\nexport function byteSwap32(arr) {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n}\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n abytes(bytes);\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n if (char >= asciis._0 && char <= asciis._9)\n return char - asciis._0;\n if (char >= asciis._A && char <= asciis._F)\n return char - (asciis._A - 10);\n if (char >= asciis._a && char <= asciis._f)\n return char - (asciis._a - 10);\n return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import { number, exists, output } from './_assert.js';\nimport { Hash, toBytes, u32, isLE, byteSwap32, byteSwapIfBE } from './utils.js';\n// Blake is based on ChaCha permutation.\n// For BLAKE2b, the two extra permutations for rounds 10 and 11 are SIGMA[10..11] = SIGMA[0..1].\n// prettier-ignore\nexport const SIGMA = /* @__PURE__ */ new Uint8Array([\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\n 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\n 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\n 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n]);\nexport class BLAKE extends Hash {\n constructor(blockLen, outputLen, opts = {}, keyLen, saltLen, persLen) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.length = 0;\n this.pos = 0;\n this.finished = false;\n this.destroyed = false;\n number(blockLen);\n number(outputLen);\n number(keyLen);\n if (outputLen < 0 || outputLen > keyLen)\n throw new Error('outputLen bigger than keyLen');\n if (opts.key !== undefined && (opts.key.length < 1 || opts.key.length > keyLen))\n throw new Error(`key must be up 1..${keyLen} byte long or undefined`);\n if (opts.salt !== undefined && opts.salt.length !== saltLen)\n throw new Error(`salt must be ${saltLen} byte long or undefined`);\n if (opts.personalization !== undefined && opts.personalization.length !== persLen)\n throw new Error(`personalization must be ${persLen} byte long or undefined`);\n this.buffer32 = u32((this.buffer = new Uint8Array(blockLen)));\n }\n update(data) {\n exists(this);\n // Main difference with other hashes: there is flag for last block,\n // so we cannot process current block before we know that there\n // is the next one. This significantly complicates logic and reduces ability\n // to do zero-copy processing\n const { blockLen, buffer, buffer32 } = this;\n data = toBytes(data);\n const len = data.length;\n const offset = data.byteOffset;\n const buf = data.buffer;\n for (let pos = 0; pos < len;) {\n // If buffer is full and we still have input (don't process last block, same as blake2s)\n if (this.pos === blockLen) {\n if (!isLE)\n byteSwap32(buffer32);\n this.compress(buffer32, 0, false);\n if (!isLE)\n byteSwap32(buffer32);\n this.pos = 0;\n }\n const take = Math.min(blockLen - this.pos, len - pos);\n const dataOffset = offset + pos;\n // full block && aligned to 4 bytes && not last in input\n if (take === blockLen && !(dataOffset % 4) && pos + take < len) {\n const data32 = new Uint32Array(buf, dataOffset, Math.floor((len - pos) / 4));\n if (!isLE)\n byteSwap32(data32);\n for (let pos32 = 0; pos + blockLen < len; pos32 += buffer32.length, pos += blockLen) {\n this.length += blockLen;\n this.compress(data32, pos32, false);\n }\n if (!isLE)\n byteSwap32(data32);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n this.length += take;\n pos += take;\n }\n return this;\n }\n digestInto(out) {\n exists(this);\n output(out, this);\n const { pos, buffer32 } = this;\n this.finished = true;\n // Padding\n this.buffer.subarray(pos).fill(0);\n if (!isLE)\n byteSwap32(buffer32);\n this.compress(buffer32, 0, true);\n if (!isLE)\n byteSwap32(buffer32);\n const out32 = u32(out);\n this.get().forEach((v, i) => (out32[i] = byteSwapIfBE(v)));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n const { buffer, length, finished, destroyed, outputLen, pos } = this;\n to || (to = new this.constructor({ dkLen: outputLen }));\n to.set(...this.get());\n to.length = length;\n to.finished = finished;\n to.destroyed = destroyed;\n to.outputLen = outputLen;\n to.buffer.set(buffer);\n to.pos = pos;\n return to;\n }\n}\n//# sourceMappingURL=_blake.js.map","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { BLAKE, SIGMA } from './_blake.js';\nimport u64 from './_u64.js';\nimport { toBytes, u32, wrapConstructorWithOpts, byteSwapIfBE } from './utils.js';\n// Same as SHA-512 but LE\n// prettier-ignore\nconst B2B_IV = /* @__PURE__ */ new Uint32Array([\n 0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a,\n 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c, 0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19\n]);\n// Temporary buffer\nconst BBUF = /* @__PURE__ */ new Uint32Array(32);\n// Mixing function G splitted in two halfs\nfunction G1b(a, b, c, d, msg, x) {\n // NOTE: V is LE here\n const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore\n let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; // prettier-ignore\n let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; // prettier-ignore\n let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; // prettier-ignore\n let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; // prettier-ignore\n // v[a] = (v[a] + v[b] + x) | 0;\n let ll = u64.add3L(Al, Bl, Xl);\n Ah = u64.add3H(ll, Ah, Bh, Xh);\n Al = ll | 0;\n // v[d] = rotr(v[d] ^ v[a], 32)\n ({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });\n ({ Dh, Dl } = { Dh: u64.rotr32H(Dh, Dl), Dl: u64.rotr32L(Dh, Dl) });\n // v[c] = (v[c] + v[d]) | 0;\n ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));\n // v[b] = rotr(v[b] ^ v[c], 24)\n ({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });\n ({ Bh, Bl } = { Bh: u64.rotrSH(Bh, Bl, 24), Bl: u64.rotrSL(Bh, Bl, 24) });\n (BBUF[2 * a] = Al), (BBUF[2 * a + 1] = Ah);\n (BBUF[2 * b] = Bl), (BBUF[2 * b + 1] = Bh);\n (BBUF[2 * c] = Cl), (BBUF[2 * c + 1] = Ch);\n (BBUF[2 * d] = Dl), (BBUF[2 * d + 1] = Dh);\n}\nfunction G2b(a, b, c, d, msg, x) {\n // NOTE: V is LE here\n const Xl = msg[x], Xh = msg[x + 1]; // prettier-ignore\n let Al = BBUF[2 * a], Ah = BBUF[2 * a + 1]; // prettier-ignore\n let Bl = BBUF[2 * b], Bh = BBUF[2 * b + 1]; // prettier-ignore\n let Cl = BBUF[2 * c], Ch = BBUF[2 * c + 1]; // prettier-ignore\n let Dl = BBUF[2 * d], Dh = BBUF[2 * d + 1]; // prettier-ignore\n // v[a] = (v[a] + v[b] + x) | 0;\n let ll = u64.add3L(Al, Bl, Xl);\n Ah = u64.add3H(ll, Ah, Bh, Xh);\n Al = ll | 0;\n // v[d] = rotr(v[d] ^ v[a], 16)\n ({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });\n ({ Dh, Dl } = { Dh: u64.rotrSH(Dh, Dl, 16), Dl: u64.rotrSL(Dh, Dl, 16) });\n // v[c] = (v[c] + v[d]) | 0;\n ({ h: Ch, l: Cl } = u64.add(Ch, Cl, Dh, Dl));\n // v[b] = rotr(v[b] ^ v[c], 63)\n ({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });\n ({ Bh, Bl } = { Bh: u64.rotrBH(Bh, Bl, 63), Bl: u64.rotrBL(Bh, Bl, 63) });\n (BBUF[2 * a] = Al), (BBUF[2 * a + 1] = Ah);\n (BBUF[2 * b] = Bl), (BBUF[2 * b + 1] = Bh);\n (BBUF[2 * c] = Cl), (BBUF[2 * c + 1] = Ch);\n (BBUF[2 * d] = Dl), (BBUF[2 * d + 1] = Dh);\n}\nclass BLAKE2b extends BLAKE {\n constructor(opts = {}) {\n super(128, opts.dkLen === undefined ? 64 : opts.dkLen, opts, 64, 16, 16);\n // Same as SHA-512, but LE\n this.v0l = B2B_IV[0] | 0;\n this.v0h = B2B_IV[1] | 0;\n this.v1l = B2B_IV[2] | 0;\n this.v1h = B2B_IV[3] | 0;\n this.v2l = B2B_IV[4] | 0;\n this.v2h = B2B_IV[5] | 0;\n this.v3l = B2B_IV[6] | 0;\n this.v3h = B2B_IV[7] | 0;\n this.v4l = B2B_IV[8] | 0;\n this.v4h = B2B_IV[9] | 0;\n this.v5l = B2B_IV[10] | 0;\n this.v5h = B2B_IV[11] | 0;\n this.v6l = B2B_IV[12] | 0;\n this.v6h = B2B_IV[13] | 0;\n this.v7l = B2B_IV[14] | 0;\n this.v7h = B2B_IV[15] | 0;\n const keyLength = opts.key ? opts.key.length : 0;\n this.v0l ^= this.outputLen | (keyLength << 8) | (0x01 << 16) | (0x01 << 24);\n if (opts.salt) {\n const salt = u32(toBytes(opts.salt));\n this.v4l ^= byteSwapIfBE(salt[0]);\n this.v4h ^= byteSwapIfBE(salt[1]);\n this.v5l ^= byteSwapIfBE(salt[2]);\n this.v5h ^= byteSwapIfBE(salt[3]);\n }\n if (opts.personalization) {\n const pers = u32(toBytes(opts.personalization));\n this.v6l ^= byteSwapIfBE(pers[0]);\n this.v6h ^= byteSwapIfBE(pers[1]);\n this.v7l ^= byteSwapIfBE(pers[2]);\n this.v7h ^= byteSwapIfBE(pers[3]);\n }\n if (opts.key) {\n // Pad to blockLen and update\n const tmp = new Uint8Array(this.blockLen);\n tmp.set(toBytes(opts.key));\n this.update(tmp);\n }\n }\n // prettier-ignore\n get() {\n let { v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h } = this;\n return [v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h];\n }\n // prettier-ignore\n set(v0l, v0h, v1l, v1h, v2l, v2h, v3l, v3h, v4l, v4h, v5l, v5h, v6l, v6h, v7l, v7h) {\n this.v0l = v0l | 0;\n this.v0h = v0h | 0;\n this.v1l = v1l | 0;\n this.v1h = v1h | 0;\n this.v2l = v2l | 0;\n this.v2h = v2h | 0;\n this.v3l = v3l | 0;\n this.v3h = v3h | 0;\n this.v4l = v4l | 0;\n this.v4h = v4h | 0;\n this.v5l = v5l | 0;\n this.v5h = v5h | 0;\n this.v6l = v6l | 0;\n this.v6h = v6h | 0;\n this.v7l = v7l | 0;\n this.v7h = v7h | 0;\n }\n compress(msg, offset, isLast) {\n this.get().forEach((v, i) => (BBUF[i] = v)); // First half from state.\n BBUF.set(B2B_IV, 16); // Second half from IV.\n let { h, l } = u64.fromBig(BigInt(this.length));\n BBUF[24] = B2B_IV[8] ^ l; // Low word of the offset.\n BBUF[25] = B2B_IV[9] ^ h; // High word.\n // Invert all bits for last block\n if (isLast) {\n BBUF[28] = ~BBUF[28];\n BBUF[29] = ~BBUF[29];\n }\n let j = 0;\n const s = SIGMA;\n for (let i = 0; i < 12; i++) {\n G1b(0, 4, 8, 12, msg, offset + 2 * s[j++]);\n G2b(0, 4, 8, 12, msg, offset + 2 * s[j++]);\n G1b(1, 5, 9, 13, msg, offset + 2 * s[j++]);\n G2b(1, 5, 9, 13, msg, offset + 2 * s[j++]);\n G1b(2, 6, 10, 14, msg, offset + 2 * s[j++]);\n G2b(2, 6, 10, 14, msg, offset + 2 * s[j++]);\n G1b(3, 7, 11, 15, msg, offset + 2 * s[j++]);\n G2b(3, 7, 11, 15, msg, offset + 2 * s[j++]);\n G1b(0, 5, 10, 15, msg, offset + 2 * s[j++]);\n G2b(0, 5, 10, 15, msg, offset + 2 * s[j++]);\n G1b(1, 6, 11, 12, msg, offset + 2 * s[j++]);\n G2b(1, 6, 11, 12, msg, offset + 2 * s[j++]);\n G1b(2, 7, 8, 13, msg, offset + 2 * s[j++]);\n G2b(2, 7, 8, 13, msg, offset + 2 * s[j++]);\n G1b(3, 4, 9, 14, msg, offset + 2 * s[j++]);\n G2b(3, 4, 9, 14, msg, offset + 2 * s[j++]);\n }\n this.v0l ^= BBUF[0] ^ BBUF[16];\n this.v0h ^= BBUF[1] ^ BBUF[17];\n this.v1l ^= BBUF[2] ^ BBUF[18];\n this.v1h ^= BBUF[3] ^ BBUF[19];\n this.v2l ^= BBUF[4] ^ BBUF[20];\n this.v2h ^= BBUF[5] ^ BBUF[21];\n this.v3l ^= BBUF[6] ^ BBUF[22];\n this.v3h ^= BBUF[7] ^ BBUF[23];\n this.v4l ^= BBUF[8] ^ BBUF[24];\n this.v4h ^= BBUF[9] ^ BBUF[25];\n this.v5l ^= BBUF[10] ^ BBUF[26];\n this.v5h ^= BBUF[11] ^ BBUF[27];\n this.v6l ^= BBUF[12] ^ BBUF[28];\n this.v6h ^= BBUF[13] ^ BBUF[29];\n this.v7l ^= BBUF[14] ^ BBUF[30];\n this.v7h ^= BBUF[15] ^ BBUF[31];\n BBUF.fill(0);\n }\n destroy() {\n this.destroyed = true;\n this.buffer32.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n/**\n * BLAKE2b - optimized for 64-bit platforms. JS doesn't have uint64, so it's slower than BLAKE2s.\n * @param msg - message that would be hashed\n * @param opts - dkLen, key, salt, personalization\n */\nexport const blake2b = /* @__PURE__ */ wrapConstructorWithOpts((opts) => new BLAKE2b(opts));\n//# sourceMappingURL=blake2b.js.map","import { blake2b as blake2bJs } from '@noble/hashes/blake2b';\nimport { hasBigInt, u8aToU8a } from '@polkadot/util';\nimport { blake2b, isReady } from '@polkadot/wasm-crypto';\nimport { createAsHex } from '../helpers.js';\n/**\n * @name blake2AsU8a\n * @summary Creates a blake2b u8a from the input.\n * @description\n * From a `Uint8Array` input, create the blake2b and return the result as a u8a with the specified `bitLength`.\n * @example\n * <BR>\n *\n * ```javascript\n * import { blake2AsU8a } from '@polkadot/util-crypto';\n *\n * blake2AsU8a('abc'); // => [0xba, 0x80, 0xa5, 0x3f, 0x98, 0x1c, 0x4d, 0x0d]\n * ```\n */\nexport function blake2AsU8a(data, bitLength = 256, key, onlyJs) {\n const byteLength = Math.ceil(bitLength / 8);\n const u8a = u8aToU8a(data);\n return !hasBigInt || (!onlyJs && isReady())\n ? blake2b(u8a, u8aToU8a(key), byteLength)\n : key\n ? blake2bJs(u8a, { dkLen: byteLength, key })\n : blake2bJs(u8a, { dkLen: byteLength });\n}\n/**\n * @name blake2AsHex\n * @description Creates a blake2b hex from the input.\n */\nexport const blake2AsHex = /*#__PURE__*/ createAsHex(blake2AsU8a);\n","import { stringToU8a, u8aConcat } from '@polkadot/util';\nimport { blake2AsU8a } from '../blake2/asU8a.js';\nconst SS58_PREFIX = stringToU8a('SS58PRE');\nexport function sshash(key) {\n return blake2AsU8a(u8aConcat(SS58_PREFIX, key), 512);\n}\n","import { sshash } from './sshash.js';\nexport function checkAddressChecksum(decoded) {\n const ss58Length = (decoded[0] & 64) ? 2 : 1;\n const ss58Decoded = ss58Length === 1\n ? decoded[0]\n : ((decoded[0] & 63) << 2) | (decoded[1] >> 6) | ((decoded[1] & 63) << 8);\n // 32/33 bytes public + 2 bytes checksum + prefix\n const isPublicKey = [34 + ss58Length, 35 + ss58Length].includes(decoded.length);\n const length = decoded.length - (isPublicKey ? 2 : 1);\n // calculate the hash and do the checksum byte checks\n const hash = sshash(decoded.subarray(0, length));\n const isValid = (decoded[0] & 128) === 0 && ![46, 47].includes(decoded[0]) && (isPublicKey\n ? decoded[decoded.length - 2] === hash[0] && decoded[decoded.length - 1] === hash[1]\n : decoded[decoded.length - 1] === hash[0]);\n return [isValid, length, ss58Length, ss58Decoded];\n}\n","// Copyright (C) 2021-2024 Parity Technologies (UK) Ltd.\n// SPDX-License-Identifier: Apache-2.0\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// \thttp://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nexport default [\n\t{\n\t\t\"prefix\": 0,\n\t\t\"network\": \"polkadot\",\n\t\t\"displayName\": \"Polkadot Relay Chain\",\n\t\t\"symbols\": [\n\t\t\t\"DOT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkadot.network\"\n\t},\n\t{\n\t\t\"prefix\": 1,\n\t\t\"network\": \"BareSr25519\",\n\t\t\"displayName\": \"Bare 32-bit Schnorr/Ristretto (S/R 25519) public key.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"Sr25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 2,\n\t\t\"network\": \"kusama\",\n\t\t\"displayName\": \"Kusama Relay Chain\",\n\t\t\"symbols\": [\n\t\t\t\"KSM\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://kusama.network\"\n\t},\n\t{\n\t\t\"prefix\": 3,\n\t\t\"network\": \"BareEd25519\",\n\t\t\"displayName\": \"Bare 32-bit Ed25519 public key.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"Ed25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 4,\n\t\t\"network\": \"katalchain\",\n\t\t\"displayName\": \"Katal Chain\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 5,\n\t\t\"network\": \"astar\",\n\t\t\"displayName\": \"Astar Network\",\n\t\t\"symbols\": [\n\t\t\t\"ASTR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://astar.network\"\n\t},\n\t{\n\t\t\"prefix\": 6,\n\t\t\"network\": \"bifrost\",\n\t\t\"displayName\": \"Bifrost\",\n\t\t\"symbols\": [\n\t\t\t\"BNC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bifrost.finance/\"\n\t},\n\t{\n\t\t\"prefix\": 7,\n\t\t\"network\": \"edgeware\",\n\t\t\"displayName\": \"Edgeware\",\n\t\t\"symbols\": [\n\t\t\t\"EDG\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://edgewa.re\"\n\t},\n\t{\n\t\t\"prefix\": 8,\n\t\t\"network\": \"karura\",\n\t\t\"displayName\": \"Karura\",\n\t\t\"symbols\": [\n\t\t\t\"KAR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://karura.network/\"\n\t},\n\t{\n\t\t\"prefix\": 9,\n\t\t\"network\": \"reynolds\",\n\t\t\"displayName\": \"Laminar Reynolds Canary\",\n\t\t\"symbols\": [\n\t\t\t\"REY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"http://laminar.network/\"\n\t},\n\t{\n\t\t\"prefix\": 10,\n\t\t\"network\": \"acala\",\n\t\t\"displayName\": \"Acala\",\n\t\t\"symbols\": [\n\t\t\t\"ACA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://acala.network/\"\n\t},\n\t{\n\t\t\"prefix\": 11,\n\t\t\"network\": \"laminar\",\n\t\t\"displayName\": \"Laminar\",\n\t\t\"symbols\": [\n\t\t\t\"LAMI\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"http://laminar.network/\"\n\t},\n\t{\n\t\t\"prefix\": 12,\n\t\t\"network\": \"polymesh\",\n\t\t\"displayName\": \"Polymesh\",\n\t\t\"symbols\": [\n\t\t\t\"POLYX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t6\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polymath.network/\"\n\t},\n\t{\n\t\t\"prefix\": 13,\n\t\t\"network\": \"integritee\",\n\t\t\"displayName\": \"Integritee\",\n\t\t\"symbols\": [\n\t\t\t\"TEER\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://integritee.network\"\n\t},\n\t{\n\t\t\"prefix\": 14,\n\t\t\"network\": \"totem\",\n\t\t\"displayName\": \"Totem\",\n\t\t\"symbols\": [\n\t\t\t\"TOTEM\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t0\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://totemaccounting.com\"\n\t},\n\t{\n\t\t\"prefix\": 15,\n\t\t\"network\": \"synesthesia\",\n\t\t\"displayName\": \"Synesthesia\",\n\t\t\"symbols\": [\n\t\t\t\"SYN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://synesthesia.network/\"\n\t},\n\t{\n\t\t\"prefix\": 16,\n\t\t\"network\": \"kulupu\",\n\t\t\"displayName\": \"Kulupu\",\n\t\t\"symbols\": [\n\t\t\t\"KLP\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://kulupu.network/\"\n\t},\n\t{\n\t\t\"prefix\": 17,\n\t\t\"network\": \"dark\",\n\t\t\"displayName\": \"Dark Mainnet\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 18,\n\t\t\"network\": \"darwinia\",\n\t\t\"displayName\": \"Darwinia Network\",\n\t\t\"symbols\": [\n\t\t\t\"RING\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://darwinia.network\"\n\t},\n\t{\n\t\t\"prefix\": 19,\n\t\t\"network\": \"watr\",\n\t\t\"displayName\": \"Watr Protocol\",\n\t\t\"symbols\": [\n\t\t\t\"WATR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.watr.org\"\n\t},\n\t{\n\t\t\"prefix\": 20,\n\t\t\"network\": \"stafi\",\n\t\t\"displayName\": \"Stafi\",\n\t\t\"symbols\": [\n\t\t\t\"FIS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://stafi.io\"\n\t},\n\t{\n\t\t\"prefix\": 21,\n\t\t\"network\": \"karmachain\",\n\t\t\"displayName\": \"Karmacoin\",\n\t\t\"symbols\": [\n\t\t\t\"KCOIN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t6\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://karmaco.in\"\n\t},\n\t{\n\t\t\"prefix\": 22,\n\t\t\"network\": \"dock-pos-mainnet\",\n\t\t\"displayName\": \"Dock Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"DCK\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t6\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://dock.io\"\n\t},\n\t{\n\t\t\"prefix\": 23,\n\t\t\"network\": \"shift\",\n\t\t\"displayName\": \"ShiftNrg\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 24,\n\t\t\"network\": \"zero\",\n\t\t\"displayName\": \"ZERO\",\n\t\t\"symbols\": [\n\t\t\t\"ZERO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://zero.io\"\n\t},\n\t{\n\t\t\"prefix\": 25,\n\t\t\"network\": \"zero-alphaville\",\n\t\t\"displayName\": \"ZERO Alphaville\",\n\t\t\"symbols\": [\n\t\t\t\"ZERO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://zero.io\"\n\t},\n\t{\n\t\t\"prefix\": 26,\n\t\t\"network\": \"jupiter\",\n\t\t\"displayName\": \"Jupiter\",\n\t\t\"symbols\": [\n\t\t\t\"jDOT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://jupiter.patract.io\"\n\t},\n\t{\n\t\t\"prefix\": 27,\n\t\t\"network\": \"kabocha\",\n\t\t\"displayName\": \"Kabocha\",\n\t\t\"symbols\": [\n\t\t\t\"KAB\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://kabocha.network\"\n\t},\n\t{\n\t\t\"prefix\": 28,\n\t\t\"network\": \"subsocial\",\n\t\t\"displayName\": \"Subsocial\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 29,\n\t\t\"network\": \"cord\",\n\t\t\"displayName\": \"CORD Network\",\n\t\t\"symbols\": [\n\t\t\t\"DHI\",\n\t\t\t\"WAY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12,\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://cord.network/\"\n\t},\n\t{\n\t\t\"prefix\": 30,\n\t\t\"network\": \"phala\",\n\t\t\"displayName\": \"Phala Network\",\n\t\t\"symbols\": [\n\t\t\t\"PHA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://phala.network\"\n\t},\n\t{\n\t\t\"prefix\": 31,\n\t\t\"network\": \"litentry\",\n\t\t\"displayName\": \"Litentry Network\",\n\t\t\"symbols\": [\n\t\t\t\"LIT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://litentry.com/\"\n\t},\n\t{\n\t\t\"prefix\": 32,\n\t\t\"network\": \"robonomics\",\n\t\t\"displayName\": \"Robonomics\",\n\t\t\"symbols\": [\n\t\t\t\"XRT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://robonomics.network\"\n\t},\n\t{\n\t\t\"prefix\": 33,\n\t\t\"network\": \"datahighway\",\n\t\t\"displayName\": \"DataHighway\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 34,\n\t\t\"network\": \"ares\",\n\t\t\"displayName\": \"Ares Protocol\",\n\t\t\"symbols\": [\n\t\t\t\"ARES\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.aresprotocol.com/\"\n\t},\n\t{\n\t\t\"prefix\": 35,\n\t\t\"network\": \"vln\",\n\t\t\"displayName\": \"Valiu Liquidity Network\",\n\t\t\"symbols\": [\n\t\t\t\"USDv\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t15\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://valiu.com/\"\n\t},\n\t{\n\t\t\"prefix\": 36,\n\t\t\"network\": \"centrifuge\",\n\t\t\"displayName\": \"Centrifuge Chain\",\n\t\t\"symbols\": [\n\t\t\t\"CFG\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://centrifuge.io/\"\n\t},\n\t{\n\t\t\"prefix\": 37,\n\t\t\"network\": \"nodle\",\n\t\t\"displayName\": \"Nodle Chain\",\n\t\t\"symbols\": [\n\t\t\t\"NODL\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t11\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://nodle.io/\"\n\t},\n\t{\n\t\t\"prefix\": 38,\n\t\t\"network\": \"kilt\",\n\t\t\"displayName\": \"KILT Spiritnet\",\n\t\t\"symbols\": [\n\t\t\t\"KILT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t15\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://kilt.io/\"\n\t},\n\t{\n\t\t\"prefix\": 39,\n\t\t\"network\": \"mathchain\",\n\t\t\"displayName\": \"MathChain mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"MATH\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://mathwallet.org\"\n\t},\n\t{\n\t\t\"prefix\": 40,\n\t\t\"network\": \"mathchain-testnet\",\n\t\t\"displayName\": \"MathChain testnet\",\n\t\t\"symbols\": [\n\t\t\t\"MATH\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://mathwallet.org\"\n\t},\n\t{\n\t\t\"prefix\": 41,\n\t\t\"network\": \"polimec\",\n\t\t\"displayName\": \"Polimec Protocol\",\n\t\t\"symbols\": [\n\t\t\t\"PLMC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.polimec.org/\"\n\t},\n\t{\n\t\t\"prefix\": 42,\n\t\t\"network\": \"substrate\",\n\t\t\"displayName\": \"Substrate\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://substrate.io/\"\n\t},\n\t{\n\t\t\"prefix\": 43,\n\t\t\"network\": \"BareSecp256k1\",\n\t\t\"displayName\": \"Bare 32-bit ECDSA SECP-256k1 public key.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 44,\n\t\t\"network\": \"chainx\",\n\t\t\"displayName\": \"ChainX\",\n\t\t\"symbols\": [\n\t\t\t\"PCX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t8\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://chainx.org/\"\n\t},\n\t{\n\t\t\"prefix\": 45,\n\t\t\"network\": \"uniarts\",\n\t\t\"displayName\": \"UniArts Network\",\n\t\t\"symbols\": [\n\t\t\t\"UART\",\n\t\t\t\"UINK\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12,\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://uniarts.me\"\n\t},\n\t{\n\t\t\"prefix\": 46,\n\t\t\"network\": \"reserved46\",\n\t\t\"displayName\": \"This prefix is reserved.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": null,\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 47,\n\t\t\"network\": \"reserved47\",\n\t\t\"displayName\": \"This prefix is reserved.\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": null,\n\t\t\"website\": null\n\t},\n\t{\n\t\t\"prefix\": 48,\n\t\t\"network\": \"neatcoin\",\n\t\t\"displayName\": \"Neatcoin Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"NEAT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://neatcoin.org\"\n\t},\n\t{\n\t\t\"prefix\": 49,\n\t\t\"network\": \"picasso\",\n\t\t\"displayName\": \"Picasso\",\n\t\t\"symbols\": [\n\t\t\t\"PICA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://picasso.composable.finance\"\n\t},\n\t{\n\t\t\"prefix\": 50,\n\t\t\"network\": \"composable\",\n\t\t\"displayName\": \"Composable Finance\",\n\t\t\"symbols\": [\n\t\t\t\"LAYR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://composable.finance\"\n\t},\n\t{\n\t\t\"prefix\": 51,\n\t\t\"network\": \"oak\",\n\t\t\"displayName\": \"OAK Network\",\n\t\t\"symbols\": [\n\t\t\t\"OAK\",\n\t\t\t\"TUR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10,\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://oak.tech\"\n\t},\n\t{\n\t\t\"prefix\": 52,\n\t\t\"network\": \"KICO\",\n\t\t\"displayName\": \"KICO\",\n\t\t\"symbols\": [\n\t\t\t\"KICO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t14\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://dico.io\"\n\t},\n\t{\n\t\t\"prefix\": 53,\n\t\t\"network\": \"DICO\",\n\t\t\"displayName\": \"DICO\",\n\t\t\"symbols\": [\n\t\t\t\"DICO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t14\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://dico.io\"\n\t},\n\t{\n\t\t\"prefix\": 54,\n\t\t\"network\": \"cere\",\n\t\t\"displayName\": \"Cere Network\",\n\t\t\"symbols\": [\n\t\t\t\"CERE\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://cere.network\"\n\t},\n\t{\n\t\t\"prefix\": 55,\n\t\t\"network\": \"xxnetwork\",\n\t\t\"displayName\": \"xx network\",\n\t\t\"symbols\": [\n\t\t\t\"XX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://xx.network\"\n\t},\n\t{\n\t\t\"prefix\": 56,\n\t\t\"network\": \"pendulum\",\n\t\t\"displayName\": \"Pendulum chain\",\n\t\t\"symbols\": [\n\t\t\t\"PEN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://pendulumchain.org/\"\n\t},\n\t{\n\t\t\"prefix\": 57,\n\t\t\"network\": \"amplitude\",\n\t\t\"displayName\": \"Amplitude chain\",\n\t\t\"symbols\": [\n\t\t\t\"AMPE\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://pendulumchain.org/\"\n\t},\n\t{\n\t\t\"prefix\": 58,\n\t\t\"network\": \"eternal-civilization\",\n\t\t\"displayName\": \"Eternal Civilization\",\n\t\t\"symbols\": [\n\t\t\t\"ECC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"http://www.ysknfr.cn/\"\n\t},\n\t{\n\t\t\"prefix\": 63,\n\t\t\"network\": \"hydradx\",\n\t\t\"displayName\": \"HydraDX\",\n\t\t\"symbols\": [\n\t\t\t\"HDX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://hydradx.io\"\n\t},\n\t{\n\t\t\"prefix\": 65,\n\t\t\"network\": \"aventus\",\n\t\t\"displayName\": \"Aventus Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"AVT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://aventus.io\"\n\t},\n\t{\n\t\t\"prefix\": 66,\n\t\t\"network\": \"crust\",\n\t\t\"displayName\": \"Crust Network\",\n\t\t\"symbols\": [\n\t\t\t\"CRU\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://crust.network\"\n\t},\n\t{\n\t\t\"prefix\": 67,\n\t\t\"network\": \"genshiro\",\n\t\t\"displayName\": \"Genshiro Network\",\n\t\t\"symbols\": [\n\t\t\t\"GENS\",\n\t\t\t\"EQD\",\n\t\t\t\"LPT0\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9,\n\t\t\t9,\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://genshiro.equilibrium.io\"\n\t},\n\t{\n\t\t\"prefix\": 68,\n\t\t\"network\": \"equilibrium\",\n\t\t\"displayName\": \"Equilibrium Network\",\n\t\t\"symbols\": [\n\t\t\t\"EQ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://equilibrium.io\"\n\t},\n\t{\n\t\t\"prefix\": 69,\n\t\t\"network\": \"sora\",\n\t\t\"displayName\": \"SORA Network\",\n\t\t\"symbols\": [\n\t\t\t\"XOR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://sora.org\"\n\t},\n\t{\n\t\t\"prefix\": 71,\n\t\t\"network\": \"p3d\",\n\t\t\"displayName\": \"3DP network\",\n\t\t\"symbols\": [\n\t\t\t\"P3D\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://3dpass.org\"\n\t},\n\t{\n\t\t\"prefix\": 72,\n\t\t\"network\": \"p3dt\",\n\t\t\"displayName\": \"3DP test network\",\n\t\t\"symbols\": [\n\t\t\t\"P3Dt\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://3dpass.org\"\n\t},\n\t{\n\t\t\"prefix\": 73,\n\t\t\"network\": \"zeitgeist\",\n\t\t\"displayName\": \"Zeitgeist\",\n\t\t\"symbols\": [\n\t\t\t\"ZTG\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://zeitgeist.pm\"\n\t},\n\t{\n\t\t\"prefix\": 77,\n\t\t\"network\": \"manta\",\n\t\t\"displayName\": \"Manta network\",\n\t\t\"symbols\": [\n\t\t\t\"MANTA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://manta.network\"\n\t},\n\t{\n\t\t\"prefix\": 78,\n\t\t\"network\": \"calamari\",\n\t\t\"displayName\": \"Calamari: Manta Canary Network\",\n\t\t\"symbols\": [\n\t\t\t\"KMA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://manta.network\"\n\t},\n\t{\n\t\t\"prefix\": 81,\n\t\t\"network\": \"sora_dot_para\",\n\t\t\"displayName\": \"SORA Polkadot Parachain\",\n\t\t\"symbols\": [\n\t\t\t\"XOR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://sora.org\"\n\t},\n\t{\n\t\t\"prefix\": 88,\n\t\t\"network\": \"polkadex\",\n\t\t\"displayName\": \"Polkadex Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"PDEX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkadex.trade\"\n\t},\n\t{\n\t\t\"prefix\": 89,\n\t\t\"network\": \"polkadexparachain\",\n\t\t\"displayName\": \"Polkadex Parachain\",\n\t\t\"symbols\": [\n\t\t\t\"PDEX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkadex.trade\"\n\t},\n\t{\n\t\t\"prefix\": 90,\n\t\t\"network\": \"frequency\",\n\t\t\"displayName\": \"Frequency\",\n\t\t\"symbols\": [\n\t\t\t\"FRQCY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t8\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.frequency.xyz\"\n\t},\n\t{\n\t\t\"prefix\": 92,\n\t\t\"network\": \"anmol\",\n\t\t\"displayName\": \"Anmol Network\",\n\t\t\"symbols\": [\n\t\t\t\"ANML\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://anmol.network/\"\n\t},\n\t{\n\t\t\"prefix\": 93,\n\t\t\"network\": \"fragnova\",\n\t\t\"displayName\": \"Fragnova Network\",\n\t\t\"symbols\": [\n\t\t\t\"NOVA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://fragnova.com\"\n\t},\n\t{\n\t\t\"prefix\": 98,\n\t\t\"network\": \"polkasmith\",\n\t\t\"displayName\": \"PolkaSmith Canary Network\",\n\t\t\"symbols\": [\n\t\t\t\"PKS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkafoundry.com\"\n\t},\n\t{\n\t\t\"prefix\": 99,\n\t\t\"network\": \"polkafoundry\",\n\t\t\"displayName\": \"PolkaFoundry Network\",\n\t\t\"symbols\": [\n\t\t\t\"PKF\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://polkafoundry.com\"\n\t},\n\t{\n\t\t\"prefix\": 100,\n\t\t\"network\": \"ibtida\",\n\t\t\"displayName\": \"Anmol Network Ibtida Canary network\",\n\t\t\"symbols\": [\n\t\t\t\"IANML\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://anmol.network/\"\n\t},\n\t{\n\t\t\"prefix\": 101,\n\t\t\"network\": \"origintrail-parachain\",\n\t\t\"displayName\": \"OriginTrail Parachain\",\n\t\t\"symbols\": [\n\t\t\t\"OTP\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://parachain.origintrail.io/\"\n\t},\n\t{\n\t\t\"prefix\": 105,\n\t\t\"network\": \"pontem-network\",\n\t\t\"displayName\": \"Pontem Network\",\n\t\t\"symbols\": [\n\t\t\t\"PONT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://pontem.network\"\n\t},\n\t{\n\t\t\"prefix\": 110,\n\t\t\"network\": \"heiko\",\n\t\t\"displayName\": \"Heiko\",\n\t\t\"symbols\": [\n\t\t\t\"HKO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://parallel.fi/\"\n\t},\n\t{\n\t\t\"prefix\": 113,\n\t\t\"network\": \"integritee-incognito\",\n\t\t\"displayName\": \"Integritee Incognito\",\n\t\t\"symbols\": [],\n\t\t\"decimals\": [],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://integritee.network\"\n\t},\n\t{\n\t\t\"prefix\": 117,\n\t\t\"network\": \"tinker\",\n\t\t\"displayName\": \"Tinker\",\n\t\t\"symbols\": [\n\t\t\t\"TNKR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://invarch.network\"\n\t},\n\t{\n\t\t\"prefix\": 126,\n\t\t\"network\": \"joystream\",\n\t\t\"displayName\": \"Joystream\",\n\t\t\"symbols\": [\n\t\t\t\"JOY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.joystream.org\"\n\t},\n\t{\n\t\t\"prefix\": 128,\n\t\t\"network\": \"clover\",\n\t\t\"displayName\": \"Clover Finance\",\n\t\t\"symbols\": [\n\t\t\t\"CLV\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://clover.finance\"\n\t},\n\t{\n\t\t\"prefix\": 129,\n\t\t\"network\": \"dorafactory-polkadot\",\n\t\t\"displayName\": \"Dorafactory Polkadot Network\",\n\t\t\"symbols\": [\n\t\t\t\"DORA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://dorafactory.org\"\n\t},\n\t{\n\t\t\"prefix\": 131,\n\t\t\"network\": \"litmus\",\n\t\t\"displayName\": \"Litmus Network\",\n\t\t\"symbols\": [\n\t\t\t\"LIT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://litentry.com/\"\n\t},\n\t{\n\t\t\"prefix\": 136,\n\t\t\"network\": \"altair\",\n\t\t\"displayName\": \"Altair\",\n\t\t\"symbols\": [\n\t\t\t\"AIR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://centrifuge.io/\"\n\t},\n\t{\n\t\t\"prefix\": 137,\n\t\t\"network\": \"vara\",\n\t\t\"displayName\": \"Vara Network\",\n\t\t\"symbols\": [\n\t\t\t\"VARA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://vara.network/\"\n\t},\n\t{\n\t\t\"prefix\": 172,\n\t\t\"network\": \"parallel\",\n\t\t\"displayName\": \"Parallel\",\n\t\t\"symbols\": [\n\t\t\t\"PARA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://parallel.fi/\"\n\t},\n\t{\n\t\t\"prefix\": 252,\n\t\t\"network\": \"social-network\",\n\t\t\"displayName\": \"Social Network\",\n\t\t\"symbols\": [\n\t\t\t\"NET\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://social.network\"\n\t},\n\t{\n\t\t\"prefix\": 255,\n\t\t\"network\": \"quartz_mainnet\",\n\t\t\"displayName\": \"QUARTZ by UNIQUE\",\n\t\t\"symbols\": [\n\t\t\t\"QTZ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://unique.network\"\n\t},\n\t{\n\t\t\"prefix\": 268,\n\t\t\"network\": \"pioneer_network\",\n\t\t\"displayName\": \"Pioneer Network by Bit.Country\",\n\t\t\"symbols\": [\n\t\t\t\"NEER\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bit.country\"\n\t},\n\t{\n\t\t\"prefix\": 420,\n\t\t\"network\": \"sora_kusama_para\",\n\t\t\"displayName\": \"SORA Kusama Parachain\",\n\t\t\"symbols\": [\n\t\t\t\"XOR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://sora.org\"\n\t},\n\t{\n\t\t\"prefix\": 440,\n\t\t\"network\": \"allfeat_network\",\n\t\t\"displayName\": \"Allfeat Network\",\n\t\t\"symbols\": [\n\t\t\t\"AFT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://allfeat.network\"\n\t},\n\t{\n\t\t\"prefix\": 666,\n\t\t\"network\": \"metaquity_network\",\n\t\t\"displayName\": \"Metaquity Network\",\n\t\t\"symbols\": [\n\t\t\t\"MQTY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://metaquity.xyz/\"\n\t},\n\t{\n\t\t\"prefix\": 777,\n\t\t\"network\": \"curio\",\n\t\t\"displayName\": \"Curio\",\n\t\t\"symbols\": [\n\t\t\t\"CGT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://parachain.capitaldex.exchange/\"\n\t},\n\t{\n\t\t\"prefix\": 789,\n\t\t\"network\": \"geek\",\n\t\t\"displayName\": \"GEEK Network\",\n\t\t\"symbols\": [\n\t\t\t\"GEEK\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://geek.gl\"\n\t},\n\t{\n\t\t\"prefix\": 995,\n\t\t\"network\": \"ternoa\",\n\t\t\"displayName\": \"Ternoa\",\n\t\t\"symbols\": [\n\t\t\t\"CAPS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.ternoa.network\"\n\t},\n\t{\n\t\t\"prefix\": 1110,\n\t\t\"network\": \"efinity\",\n\t\t\"displayName\": \"Efinity\",\n\t\t\"symbols\": [\n\t\t\t\"EFI\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://efinity.io/\"\n\t},\n\t{\n\t\t\"prefix\": 1221,\n\t\t\"network\": \"peaq\",\n\t\t\"displayName\": \"Peaq Network\",\n\t\t\"symbols\": [\n\t\t\t\"PEAQ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"Sr25519\",\n\t\t\"website\": \"https://www.peaq.network/\"\n\t},\n\t{\n\t\t\"prefix\": 1222,\n\t\t\"network\": \"krest\",\n\t\t\"displayName\": \"Krest Network\",\n\t\t\"symbols\": [\n\t\t\t\"KREST\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"Sr25519\",\n\t\t\"website\": \"https://www.peaq.network/\"\n\t},\n\t{\n\t\t\"prefix\": 1284,\n\t\t\"network\": \"moonbeam\",\n\t\t\"displayName\": \"Moonbeam\",\n\t\t\"symbols\": [\n\t\t\t\"GLMR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://moonbeam.network\"\n\t},\n\t{\n\t\t\"prefix\": 1285,\n\t\t\"network\": \"moonriver\",\n\t\t\"displayName\": \"Moonriver\",\n\t\t\"symbols\": [\n\t\t\t\"MOVR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://moonbeam.network\"\n\t},\n\t{\n\t\t\"prefix\": 1328,\n\t\t\"network\": \"ajuna\",\n\t\t\"displayName\": \"Ajuna Network\",\n\t\t\"symbols\": [\n\t\t\t\"AJUN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ajuna.io\"\n\t},\n\t{\n\t\t\"prefix\": 1337,\n\t\t\"network\": \"bajun\",\n\t\t\"displayName\": \"Bajun Network\",\n\t\t\"symbols\": [\n\t\t\t\"BAJU\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ajuna.io\"\n\t},\n\t{\n\t\t\"prefix\": 1516,\n\t\t\"network\": \"societal\",\n\t\t\"displayName\": \"Societal\",\n\t\t\"symbols\": [\n\t\t\t\"SCTL\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.sctl.xyz\"\n\t},\n\t{\n\t\t\"prefix\": 1985,\n\t\t\"network\": \"seals\",\n\t\t\"displayName\": \"Seals Network\",\n\t\t\"symbols\": [\n\t\t\t\"SEAL\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://seals.app\"\n\t},\n\t{\n\t\t\"prefix\": 2007,\n\t\t\"network\": \"kapex\",\n\t\t\"displayName\": \"Kapex\",\n\t\t\"symbols\": [\n\t\t\t\"KAPEX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://totemaccounting.com\"\n\t},\n\t{\n\t\t\"prefix\": 2009,\n\t\t\"network\": \"cloudwalk_mainnet\",\n\t\t\"displayName\": \"CloudWalk Network Mainnet\",\n\t\t\"symbols\": [\n\t\t\t\"CWN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://explorer.mainnet.cloudwalk.io\"\n\t},\n\t{\n\t\t\"prefix\": 2021,\n\t\t\"network\": \"logion\",\n\t\t\"displayName\": \"logion network\",\n\t\t\"symbols\": [\n\t\t\t\"LGNT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://logion.network\"\n\t},\n\t{\n\t\t\"prefix\": 2032,\n\t\t\"network\": \"interlay\",\n\t\t\"displayName\": \"Interlay\",\n\t\t\"symbols\": [\n\t\t\t\"INTR\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t10\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://interlay.io/\"\n\t},\n\t{\n\t\t\"prefix\": 2092,\n\t\t\"network\": \"kintsugi\",\n\t\t\"displayName\": \"Kintsugi\",\n\t\t\"symbols\": [\n\t\t\t\"KINT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://interlay.io/\"\n\t},\n\t{\n\t\t\"prefix\": 2106,\n\t\t\"network\": \"bitgreen\",\n\t\t\"displayName\": \"Bitgreen\",\n\t\t\"symbols\": [\n\t\t\t\"BBB\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bitgreen.org/\"\n\t},\n\t{\n\t\t\"prefix\": 2112,\n\t\t\"network\": \"chainflip\",\n\t\t\"displayName\": \"Chainflip\",\n\t\t\"symbols\": [\n\t\t\t\"FLIP\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://chainflip.io/\"\n\t},\n\t{\n\t\t\"prefix\": 2199,\n\t\t\"network\": \"moonsama\",\n\t\t\"displayName\": \"Moonsama\",\n\t\t\"symbols\": [\n\t\t\t\"SAMA\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://moonsama.com\"\n\t},\n\t{\n\t\t\"prefix\": 2206,\n\t\t\"network\": \"ICE\",\n\t\t\"displayName\": \"ICE Network\",\n\t\t\"symbols\": [\n\t\t\t\"ICY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://icenetwork.io\"\n\t},\n\t{\n\t\t\"prefix\": 2207,\n\t\t\"network\": \"SNOW\",\n\t\t\"displayName\": \"SNOW: ICE Canary Network\",\n\t\t\"symbols\": [\n\t\t\t\"ICZ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://icenetwork.io\"\n\t},\n\t{\n\t\t\"prefix\": 2254,\n\t\t\"network\": \"subspace_testnet\",\n\t\t\"displayName\": \"Subspace testnet\",\n\t\t\"symbols\": [\n\t\t\t\"tSSC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://subspace.network\"\n\t},\n\t{\n\t\t\"prefix\": 3333,\n\t\t\"network\": \"peerplays\",\n\t\t\"displayName\": \"Peerplays\",\n\t\t\"symbols\": [\n\t\t\t\"PPY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://www.peerplays.com/\"\n\t},\n\t{\n\t\t\"prefix\": 4450,\n\t\t\"network\": \"g1\",\n\t\t\"displayName\": \"Ğ1\",\n\t\t\"symbols\": [\n\t\t\t\"G1\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t2\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://duniter.org\"\n\t},\n\t{\n\t\t\"prefix\": 5234,\n\t\t\"network\": \"humanode\",\n\t\t\"displayName\": \"Humanode Network\",\n\t\t\"symbols\": [\n\t\t\t\"HMND\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://humanode.io\"\n\t},\n\t{\n\t\t\"prefix\": 5845,\n\t\t\"network\": \"tangle\",\n\t\t\"displayName\": \"Tangle Network\",\n\t\t\"symbols\": [\n\t\t\t\"TNT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.tangle.tools/\"\n\t},\n\t{\n\t\t\"prefix\": 6094,\n\t\t\"network\": \"subspace\",\n\t\t\"displayName\": \"Subspace\",\n\t\t\"symbols\": [\n\t\t\t\"SSC\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://subspace.network\"\n\t},\n\t{\n\t\t\"prefix\": 7007,\n\t\t\"network\": \"tidefi\",\n\t\t\"displayName\": \"Tidefi\",\n\t\t\"symbols\": [\n\t\t\t\"TDFY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://tidefi.com\"\n\t},\n\t{\n\t\t\"prefix\": 7013,\n\t\t\"network\": \"gm\",\n\t\t\"displayName\": \"GM\",\n\t\t\"symbols\": [\n\t\t\t\"FREN\",\n\t\t\t\"GM\",\n\t\t\t\"GN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12,\n\t\t\t0,\n\t\t\t0\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://gmordie.com\"\n\t},\n\t{\n\t\t\"prefix\": 7306,\n\t\t\"network\": \"krigan\",\n\t\t\"displayName\": \"Krigan Network\",\n\t\t\"symbols\": [\n\t\t\t\"KRGN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://krigan.network\"\n\t},\n\t{\n\t\t\"prefix\": 7391,\n\t\t\"network\": \"unique_mainnet\",\n\t\t\"displayName\": \"Unique Network\",\n\t\t\"symbols\": [\n\t\t\t\"UNQ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://unique.network\"\n\t},\n\t{\n\t\t\"prefix\": 8866,\n\t\t\"network\": \"golden_gate\",\n\t\t\"displayName\": \"Golden Gate\",\n\t\t\"symbols\": [\n\t\t\t\"GGX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ggxchain.io/\"\n\t},\n\t{\n\t\t\"prefix\": 8883,\n\t\t\"network\": \"sapphire_mainnet\",\n\t\t\"displayName\": \"Sapphire by Unique\",\n\t\t\"symbols\": [\n\t\t\t\"QTZ\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://unique.network\"\n\t},\n\t{\n\t\t\"prefix\": 8886,\n\t\t\"network\": \"golden_gate_sydney\",\n\t\t\"displayName\": \"Golden Gate Sydney\",\n\t\t\"symbols\": [\n\t\t\t\"GGXT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ggxchain.io/\"\n\t},\n\t{\n\t\t\"prefix\": 9072,\n\t\t\"network\": \"hashed\",\n\t\t\"displayName\": \"Hashed Network\",\n\t\t\"symbols\": [\n\t\t\t\"HASH\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://hashed.network\"\n\t},\n\t{\n\t\t\"prefix\": 9807,\n\t\t\"network\": \"dentnet\",\n\t\t\"displayName\": \"DENTNet\",\n\t\t\"symbols\": [\n\t\t\t\"DENTX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://www.dentnet.io\"\n\t},\n\t{\n\t\t\"prefix\": 9935,\n\t\t\"network\": \"t3rn\",\n\t\t\"displayName\": \"t3rn\",\n\t\t\"symbols\": [\n\t\t\t\"TRN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://t3rn.io/\"\n\t},\n\t{\n\t\t\"prefix\": 10041,\n\t\t\"network\": \"basilisk\",\n\t\t\"displayName\": \"Basilisk\",\n\t\t\"symbols\": [\n\t\t\t\"BSX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bsx.fi\"\n\t},\n\t{\n\t\t\"prefix\": 11330,\n\t\t\"network\": \"cess-testnet\",\n\t\t\"displayName\": \"CESS Testnet\",\n\t\t\"symbols\": [\n\t\t\t\"TCESS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://cess.cloud\"\n\t},\n\t{\n\t\t\"prefix\": 11331,\n\t\t\"network\": \"cess\",\n\t\t\"displayName\": \"CESS\",\n\t\t\"symbols\": [\n\t\t\t\"CESS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://cess.cloud\"\n\t},\n\t{\n\t\t\"prefix\": 11486,\n\t\t\"network\": \"luhn\",\n\t\t\"displayName\": \"Luhn Network\",\n\t\t\"symbols\": [\n\t\t\t\"LUHN\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://luhn.network\"\n\t},\n\t{\n\t\t\"prefix\": 11820,\n\t\t\"network\": \"contextfree\",\n\t\t\"displayName\": \"Automata ContextFree\",\n\t\t\"symbols\": [\n\t\t\t\"CTX\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://ata.network\"\n\t},\n\t{\n\t\t\"prefix\": 12155,\n\t\t\"network\": \"impact\",\n\t\t\"displayName\": \"Impact Protocol Network\",\n\t\t\"symbols\": [\n\t\t\t\"BSTY\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://impactprotocol.network/\"\n\t},\n\t{\n\t\t\"prefix\": 12191,\n\t\t\"network\": \"nftmart\",\n\t\t\"displayName\": \"NFTMart\",\n\t\t\"symbols\": [\n\t\t\t\"NMT\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t12\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://nftmart.io\"\n\t},\n\t{\n\t\t\"prefix\": 13116,\n\t\t\"network\": \"bittensor\",\n\t\t\"displayName\": \"Bittensor\",\n\t\t\"symbols\": [\n\t\t\t\"TAO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://bittensor.com\"\n\t},\n\t{\n\t\t\"prefix\": 14697,\n\t\t\"network\": \"goro\",\n\t\t\"displayName\": \"GORO Network\",\n\t\t\"symbols\": [\n\t\t\t\"GORO\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t9\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://goro.network\"\n\t},\n\t{\n\t\t\"prefix\": 14998,\n\t\t\"network\": \"mosaic-chain\",\n\t\t\"displayName\": \"Mosaic Chain\",\n\t\t\"symbols\": [\n\t\t\t\"MOS\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"*25519\",\n\t\t\"website\": \"https://mosaicchain.io\"\n\t},\n\t{\n\t\t\"prefix\": 29972,\n\t\t\"network\": \"mythos\",\n\t\t\"displayName\": \"Mythos\",\n\t\t\"symbols\": [\n\t\t\t\"MYTH\"\n\t\t],\n\t\t\"decimals\": [\n\t\t\t18\n\t\t],\n\t\t\"standardAccount\": \"secp256k1\",\n\t\t\"website\": \"https://mythos.foundation\"\n\t}\n];\n","export const knownGenesis = {\n acala: [\n '0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c'\n ],\n ajuna: [\n '0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee'\n ],\n 'aleph-node': [\n '0x70255b4d28de0fc4e1a193d7e175ad1ccef431598211c55538f1018651a0344e'\n ],\n astar: [\n '0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6'\n ],\n basilisk: [\n '0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755'\n ],\n bifrost: [\n '0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b'\n ],\n 'bifrost-kusama': [\n '0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed'\n ],\n bittensor: [\n '0x2f0555cc76fc2840a25a6ea3b9637146806f1f44b090c175ffde2a7e5ab36c03'\n ],\n centrifuge: [\n '0xb3db41421702df9a7fcac62b53ffeac85f7853cc4e689e0b93aeb3db18c09d82',\n '0x67dddf2673b69e5f875f6f25277495834398eafd67f492e09f3f3345e003d1b5'\n ],\n cere: [\n '0x81443836a9a24caaa23f1241897d1235717535711d1d3fe24eae4fdc942c092c'\n ],\n composable: [\n '0xdaab8df776eb52ec604a5df5d388bb62a050a0aaec4556a64265b9d42755552d'\n ],\n darwinia: [\n '0xe71578b37a7c799b0ab4ee87ffa6f059a6b98f71f06fb8c84a8d88013a548ad6'\n ],\n 'dock-mainnet': [\n '0x6bfe24dca2a3be10f22212678ac13a6446ec764103c0f3471c71609eac384aae',\n '0xf73467c6544aa68df2ee546b135f955c46b90fa627e9b5d7935f41061bb8a5a9'\n ],\n edgeware: [\n '0x742a2ca70c2fda6cee4f8df98d64c4c670a052d9568058982dad9d5a7a135c5b'\n ],\n enjin: [\n '0xd8761d3c88f26dc12875c00d3165f7d67243d56fc85b4cf19937601a7916e5a9'\n ],\n equilibrium: [\n '0x6f1a800de3daff7f5e037ddf66ab22ce03ab91874debeddb1086f5f7dbd48925'\n ],\n genshiro: [\n '0x9b8cefc0eb5c568b527998bdd76c184e2b76ae561be76e4667072230217ea243'\n ],\n hydradx: [\n '0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d', // HydraDX Parachain\n '0xd2a620c27ec5cbc5621ff9a522689895074f7cca0d08e7134a7804e1a3ba86fc', // Snakenet Gen3-1\n '0x10af6e84234477d84dc572bac0789813b254aa490767ed06fb9591191d1073f9', // Snakenet Gen3\n '0x3d75507dd46301767e601265791da1d9cb47b6ebc94e87347b635e5bf58bd047', // Snakenet Gen2\n '0x0ed32bfcab4a83517fac88f2aa7cbc2f88d3ab93be9a12b6188a036bf8a943c2' // Snakenet Gen1\n ],\n 'interlay-parachain': [\n '0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72'\n ],\n karura: [\n '0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b'\n ],\n khala: [\n '0xd43540ba6d3eb4897c28a77d48cb5b729fea37603cbbfc7a86a73b72adb3be8d'\n ],\n kulupu: [\n '0xf7a99d3cb92853d00d5275c971c132c074636256583fee53b3bbe60d7b8769ba'\n ],\n kusama: [\n '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe', // Kusama CC3,\n '0xe3777fa922cafbff200cadeaea1a76bd7898ad5b89f7848999058b50e715f636', // Kusama CC2\n '0x3fd7b9eb6a00376e5be61f01abb429ffb0b104be05eaff4d458da48fcd425baf' // Kusama CC1\n ],\n matrixchain: [\n '0x3af4ff48ec76d2efc8476730f423ac07e25ad48f5f4c9dc39c778b164d808615'\n ],\n nodle: [\n '0x97da7ede98d7bad4e36b4d734b6055425a3be036da2a332ea5a7037656427a21'\n ],\n origintrail: [\n '0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174'\n ],\n p3d: [\n '0x6c5894837ad89b6d92b114a2fb3eafa8fe3d26a54848e3447015442cd6ef4e66'\n ],\n parallel: [\n '0xe61a41c53f5dcd0beb09df93b34402aada44cb05117b71059cce40a2723a4e97'\n ],\n pendulum: [\n '0x5d3c298622d5634ed019bf61ea4b71655030015bde9beb0d6a24743714462c86'\n ],\n phala: [\n '0x1bb969d85965e4bb5a651abbedf21a54b6b31a21f66b5401cc3f1e286268d736'\n ],\n picasso: [\n '0x6811a339673c9daa897944dcdac99c6e2939cc88245ed21951a0a3c9a2be75bc',\n '0xe8e7f0f4c4f5a00720b4821dbfddefea7490bcf0b19009961cc46957984e2c1c'\n ],\n polkadex: [\n '0x3920bcb4960a1eef5580cd5367ff3f430eef052774f78468852f7b9cb39f8a3c'\n ],\n polkadot: [\n '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3'\n ],\n polymesh: [\n '0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063'\n ],\n quartz: [\n '0xcd4d732201ebe5d6b014edda071c4203e16867305332301dc8d092044b28e554'\n ],\n rococo: [\n '0x6408de7737c59c238890533af25896a2c20608d8b380bb01029acb392781063e',\n '0xaaf2cd1b74b5f726895921259421b534124726263982522174147046b8827897',\n '0x037f5f3c8e67b314062025fc886fcd6238ea25a4a9b45dce8d246815c9ebe770',\n '0xc196f81260cf1686172b47a79cf002120735d7cb0eb1474e8adce56618456fff',\n '0xf6e9983c37baf68846fedafe21e56718790e39fb1c582abc408b81bc7b208f9a',\n '0x5fce687da39305dfe682b117f0820b319348e8bb37eb16cf34acbf6a202de9d9',\n '0xe7c3d5edde7db964317cd9b51a3a059d7cd99f81bdbce14990047354334c9779',\n '0x1611e1dbf0405379b861e2e27daa90f480b2e6d3682414a80835a52e8cb8a215',\n '0x343442f12fa715489a8714e79a7b264ea88c0d5b8c66b684a7788a516032f6b9',\n '0x78bcd530c6b3a068bc17473cf5d2aff9c287102bed9af3ae3c41c33b9d6c6147',\n '0x47381ee0697153d64404fc578392c8fd5cba9073391908f46c888498415647bd',\n '0x19c0e4fa8ab75f5ac7865e0b8f74ff91eb9a100d336f423cd013a8befba40299'\n ],\n sora: [\n '0x7e4e32d0feafd4f9c9414b0be86373f9a1efa904809b683453a9af6856d38ad5'\n ],\n stafi: [\n '0x290a4149f09ea0e402c74c1c7e96ae4239588577fe78932f94f5404c68243d80'\n ],\n statemine: [\n '0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a'\n ],\n statemint: [\n '0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f'\n ],\n subsocial: [\n '0x0bd72c1c305172e1275278aaeb3f161e02eccb7a819e63f62d47bd53a28189f8'\n ],\n ternoa: [\n '0x6859c81ca95ef624c9dfe4dc6e3381c33e5d6509e35e147092bfbc780f777c4e'\n ],\n unique: [\n '0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31'\n ],\n vtb: [\n '0x286bc8414c7000ce1d6ee6a834e29a54c1784814b76243eb77ed0b2c5573c60f',\n '0x7483b89572fb2bd687c7b9a93b242d0b237f9aba463aba07ec24503931038aaa'\n ],\n westend: [\n '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e'\n ],\n xxnetwork: [\n '0x50dd5d206917bf10502c68fb4d18a59fc8aa31586f4e8856b493e43544aa82aa'\n ],\n zeitgeist: [\n '0x1bf2a2ecb4a868de66ea8610f2ce7c8c43706561b6476031315f6640fe38e060'\n ]\n};\n","export const knownIcon = {\n centrifuge: 'polkadot',\n kusama: 'polkadot',\n polkadot: 'polkadot',\n sora: 'polkadot',\n statemine: 'polkadot',\n statemint: 'polkadot',\n westmint: 'polkadot'\n};\n","export const knownLedger = {\n acala: 0x00000313,\n ajuna: 0x00000162,\n 'aleph-node': 0x00000283,\n astar: 0x0000032a,\n bifrost: 0x00000314,\n 'bifrost-kusama': 0x00000314,\n centrifuge: 0x000002eb,\n composable: 0x00000162,\n darwinia: 0x00000162,\n 'dock-mainnet': 0x00000252,\n edgeware: 0x0000020b,\n enjin: 0x00000483,\n equilibrium: 0x05f5e0fd,\n genshiro: 0x05f5e0fc,\n hydradx: 0x00000162,\n 'interlay-parachain': 0x00000162,\n karura: 0x000002ae,\n khala: 0x000001b2,\n kusama: 0x000001b2,\n matrixchain: 0x00000483,\n nodle: 0x000003eb,\n origintrail: 0x00000162,\n parallel: 0x00000162,\n pendulum: 0x00000162,\n phala: 0x00000162,\n picasso: 0x000001b2,\n polkadex: 0x0000031f,\n polkadot: 0x00000162,\n polymesh: 0x00000253,\n quartz: 0x00000277,\n sora: 0x00000269,\n stafi: 0x0000038b,\n statemine: 0x000001b2, // common-good on Kusama, shares derivation\n statemint: 0x00000162, // common-good on Polkadot, shares derivation\n ternoa: 0x00003e3,\n unique: 0x00000295,\n vtb: 0x000002b6,\n xxnetwork: 0x000007a3,\n zeitgeist: 0x00000162\n};\n","export const knownTestnet = {\n '': true, // this is the default non-network entry\n 'cess-testnet': true,\n 'dock-testnet': true,\n jupiter: true,\n 'mathchain-testnet': true,\n p3dt: true,\n subspace_testnet: true,\n 'zero-alphaville': true\n};\n","import knownSubstrate from '@substrate/ss58-registry';\nimport { knownGenesis, knownIcon, knownLedger, knownTestnet } from './defaults/index.js';\nconst UNSORTED = [0, 2, 42];\nconst TESTNETS = ['testnet'];\nfunction toExpanded(o) {\n const network = o.network || '';\n const nameParts = network.replace(/_/g, '-').split('-');\n const n = o;\n // ledger additions\n n.slip44 = knownLedger[network];\n n.hasLedgerSupport = !!n.slip44;\n // general items\n n.genesisHash = knownGenesis[network] || [];\n n.icon = knownIcon[network] || 'substrate';\n // filtering\n n.isTestnet = !!knownTestnet[network] || TESTNETS.includes(nameParts[nameParts.length - 1]);\n n.isIgnored = n.isTestnet || (!(o.standardAccount &&\n o.decimals?.length &&\n o.symbols?.length) &&\n o.prefix !== 42);\n return n;\n}\nfunction filterSelectable({ genesisHash, prefix }) {\n return !!genesisHash.length || prefix === 42;\n}\nfunction filterAvailable(n) {\n return !n.isIgnored && !!n.network;\n}\nfunction sortNetworks(a, b) {\n const isUnSortedA = UNSORTED.includes(a.prefix);\n const isUnSortedB = UNSORTED.includes(b.prefix);\n return isUnSortedA === isUnSortedB\n ? isUnSortedA\n ? 0\n : a.displayName.localeCompare(b.displayName)\n : isUnSortedA\n ? -1\n : 1;\n}\nexport const allNetworks = knownSubstrate.map(toExpanded);\nexport const availableNetworks = allNetworks.filter(filterAvailable).sort(sortNetworks);\nexport const selectableNetworks = availableNetworks.filter(filterSelectable);\n","import { availableNetworks } from '../networks.js';\nexport const defaults = {\n allowedDecodedLengths: [1, 2, 4, 8, 32, 33],\n // publicKey has prefix + 2 checksum bytes, short only prefix + 1 checksum byte\n allowedEncodedLengths: [3, 4, 6, 10, 35, 36, 37, 38],\n allowedPrefix: availableNetworks.map(({ prefix }) => prefix),\n prefix: 42\n};\n","import { isHex, isU8a, u8aToU8a } from '@polkadot/util';\nimport { base58Decode } from '../base58/index.js';\nimport { checkAddressChecksum } from './checksum.js';\nimport { defaults } from './defaults.js';\nexport function decodeAddress(encoded, ignoreChecksum, ss58Format = -1) {\n if (!encoded) {\n throw new Error('Invalid empty address passed');\n }\n if (isU8a(encoded) || isHex(encoded)) {\n return u8aToU8a(encoded);\n }\n try {\n const decoded = base58Decode(encoded);\n if (!defaults.allowedEncodedLengths.includes(decoded.length)) {\n throw new Error('Invalid decoded address length');\n }\n const [isValid, endPos, ss58Length, ss58Decoded] = checkAddressChecksum(decoded);\n if (!isValid && !ignoreChecksum) {\n throw new Error('Invalid decoded address checksum');\n }\n else if (ss58Format !== -1 && ss58Format !== ss58Decoded) {\n throw new Error(`Expected ss58Format ${ss58Format}, received ${ss58Decoded}`);\n }\n return decoded.slice(ss58Length, endPos);\n }\n catch (error) {\n throw new Error(`Decoding ${encoded}: ${error.message}`);\n }\n}\n","import { u8aConcat } from '@polkadot/util';\nimport { base58Encode } from '../base58/index.js';\nimport { decodeAddress } from './decode.js';\nimport { defaults } from './defaults.js';\nimport { sshash } from './sshash.js';\nexport function encodeAddress(key, ss58Format = defaults.prefix) {\n // decode it, this means we can re-encode an address\n const u8a = decodeAddress(key);\n if ((ss58Format < 0) || (ss58Format > 16383) || [46, 47].includes(ss58Format)) {\n throw new Error('Out of range ss58Format specified');\n }\n else if (!defaults.allowedDecodedLengths.includes(u8a.length)) {\n throw new Error(`Expected a valid key to convert, with length ${defaults.allowedDecodedLengths.join(', ')}`);\n }\n const input = u8aConcat(ss58Format < 64\n ? [ss58Format]\n : [\n ((ss58Format & 252) >> 2) | 64,\n (ss58Format >> 8) | ((ss58Format & 3) << 6)\n ], u8a);\n return base58Encode(u8aConcat(input, sshash(input).subarray(0, [32, 33].includes(u8a.length) ? 2 : 1)));\n}\n","/* Do NOT modify this file; see /src.ts/_admin/update-version.ts */\n/**\n * The current version of Ethers.\n */\nexport const version = \"6.12.1\";\n//# sourceMappingURL=_version.js.map","/**\n * Property helper functions.\n *\n * @_subsection api/utils:Properties [about-properties]\n */\nfunction checkType(value, type, name) {\n const types = type.split(\"|\").map(t => t.trim());\n for (let i = 0; i < types.length; i++) {\n switch (type) {\n case \"any\":\n return;\n case \"bigint\":\n case \"boolean\":\n case \"number\":\n case \"string\":\n if (typeof (value) === type) {\n return;\n }\n }\n }\n const error = new Error(`invalid value for type ${type}`);\n error.code = \"INVALID_ARGUMENT\";\n error.argument = `value.${name}`;\n error.value = value;\n throw error;\n}\n/**\n * Resolves to a new object that is a copy of %%value%%, but with all\n * values resolved.\n */\nexport async function resolveProperties(value) {\n const keys = Object.keys(value);\n const results = await Promise.all(keys.map((k) => Promise.resolve(value[k])));\n return results.reduce((accum, v, index) => {\n accum[keys[index]] = v;\n return accum;\n }, {});\n}\n/**\n * Assigns the %%values%% to %%target%% as read-only values.\n *\n * It %%types%% is specified, the values are checked.\n */\nexport function defineProperties(target, values, types) {\n for (let key in values) {\n let value = values[key];\n const type = (types ? types[key] : null);\n if (type) {\n checkType(value, type, key);\n }\n Object.defineProperty(target, key, { enumerable: true, value, writable: false });\n }\n}\n//# sourceMappingURL=properties.js.map","/**\n * All errors in ethers include properties to ensure they are both\n * human-readable (i.e. ``.message``) and machine-readable (i.e. ``.code``).\n *\n * The [[isError]] function can be used to check the error ``code`` and\n * provide a type guard for the properties present on that error interface.\n *\n * @_section: api/utils/errors:Errors [about-errors]\n */\nimport { version } from \"../_version.js\";\nimport { defineProperties } from \"./properties.js\";\nfunction stringify(value) {\n if (value == null) {\n return \"null\";\n }\n if (Array.isArray(value)) {\n return \"[ \" + (value.map(stringify)).join(\", \") + \" ]\";\n }\n if (value instanceof Uint8Array) {\n const HEX = \"0123456789abcdef\";\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n result += HEX[value[i] >> 4];\n result += HEX[value[i] & 0xf];\n }\n return result;\n }\n if (typeof (value) === \"object\" && typeof (value.toJSON) === \"function\") {\n return stringify(value.toJSON());\n }\n switch (typeof (value)) {\n case \"boolean\":\n case \"symbol\":\n return value.toString();\n case \"bigint\":\n return BigInt(value).toString();\n case \"number\":\n return (value).toString();\n case \"string\":\n return JSON.stringify(value);\n case \"object\": {\n const keys = Object.keys(value);\n keys.sort();\n return \"{ \" + keys.map((k) => `${stringify(k)}: ${stringify(value[k])}`).join(\", \") + \" }\";\n }\n }\n return `[ COULD NOT SERIALIZE ]`;\n}\n/**\n * Returns true if the %%error%% matches an error thrown by ethers\n * that matches the error %%code%%.\n *\n * In TypeScript environments, this can be used to check that %%error%%\n * matches an EthersError type, which means the expected properties will\n * be set.\n *\n * @See [ErrorCodes](api:ErrorCode)\n * @example\n * try {\n * // code....\n * } catch (e) {\n * if (isError(e, \"CALL_EXCEPTION\")) {\n * // The Type Guard has validated this object\n * console.log(e.data);\n * }\n * }\n */\nexport function isError(error, code) {\n return (error && error.code === code);\n}\n/**\n * Returns true if %%error%% is a [[CallExceptionError].\n */\nexport function isCallException(error) {\n return isError(error, \"CALL_EXCEPTION\");\n}\n/**\n * Returns a new Error configured to the format ethers emits errors, with\n * the %%message%%, [[api:ErrorCode]] %%code%% and additional properties\n * for the corresponding EthersError.\n *\n * Each error in ethers includes the version of ethers, a\n * machine-readable [[ErrorCode]], and depending on %%code%%, additional\n * required properties. The error message will also include the %%message%%,\n * ethers version, %%code%% and all additional properties, serialized.\n */\nexport function makeError(message, code, info) {\n let shortMessage = message;\n {\n const details = [];\n if (info) {\n if (\"message\" in info || \"code\" in info || \"name\" in info) {\n throw new Error(`value will overwrite populated values: ${stringify(info)}`);\n }\n for (const key in info) {\n if (key === \"shortMessage\") {\n continue;\n }\n const value = (info[key]);\n // try {\n details.push(key + \"=\" + stringify(value));\n // } catch (error: any) {\n // console.log(\"MMM\", error.message);\n // details.push(key + \"=[could not serialize object]\");\n // }\n }\n }\n details.push(`code=${code}`);\n details.push(`version=${version}`);\n if (details.length) {\n message += \" (\" + details.join(\", \") + \")\";\n }\n }\n let error;\n switch (code) {\n case \"INVALID_ARGUMENT\":\n error = new TypeError(message);\n break;\n case \"NUMERIC_FAULT\":\n case \"BUFFER_OVERRUN\":\n error = new RangeError(message);\n break;\n default:\n error = new Error(message);\n }\n defineProperties(error, { code });\n if (info) {\n Object.assign(error, info);\n }\n if (error.shortMessage == null) {\n defineProperties(error, { shortMessage });\n }\n return error;\n}\n/**\n * Throws an EthersError with %%message%%, %%code%% and additional error\n * %%info%% when %%check%% is falsish..\n *\n * @see [[api:makeError]]\n */\nexport function assert(check, message, code, info) {\n if (!check) {\n throw makeError(message, code, info);\n }\n}\n/**\n * A simple helper to simply ensuring provided arguments match expected\n * constraints, throwing if not.\n *\n * In TypeScript environments, the %%check%% has been asserted true, so\n * any further code does not need additional compile-time checks.\n */\nexport function assertArgument(check, message, name, value) {\n assert(check, message, \"INVALID_ARGUMENT\", { argument: name, value: value });\n}\nexport function assertArgumentCount(count, expectedCount, message) {\n if (message == null) {\n message = \"\";\n }\n if (message) {\n message = \": \" + message;\n }\n assert(count >= expectedCount, \"missing arguemnt\" + message, \"MISSING_ARGUMENT\", {\n count: count,\n expectedCount: expectedCount\n });\n assert(count <= expectedCount, \"too many arguments\" + message, \"UNEXPECTED_ARGUMENT\", {\n count: count,\n expectedCount: expectedCount\n });\n}\nconst _normalizeForms = [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].reduce((accum, form) => {\n try {\n // General test for normalize\n /* c8 ignore start */\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad\");\n }\n ;\n /* c8 ignore stop */\n if (form === \"NFD\") {\n const check = String.fromCharCode(0xe9).normalize(\"NFD\");\n const expected = String.fromCharCode(0x65, 0x0301);\n /* c8 ignore start */\n if (check !== expected) {\n throw new Error(\"broken\");\n }\n /* c8 ignore stop */\n }\n accum.push(form);\n }\n catch (error) { }\n return accum;\n}, []);\n/**\n * Throws if the normalization %%form%% is not supported.\n */\nexport function assertNormalize(form) {\n assert(_normalizeForms.indexOf(form) >= 0, \"platform missing String.prototype.normalize\", \"UNSUPPORTED_OPERATION\", {\n operation: \"String.prototype.normalize\", info: { form }\n });\n}\n/**\n * Many classes use file-scoped values to guard the constructor,\n * making it effectively private. This facilitates that pattern\n * by ensuring the %%givenGaurd%% matches the file-scoped %%guard%%,\n * throwing if not, indicating the %%className%% if provided.\n */\nexport function assertPrivate(givenGuard, guard, className) {\n if (className == null) {\n className = \"\";\n }\n if (givenGuard !== guard) {\n let method = className, operation = \"new\";\n if (className) {\n method += \".\";\n operation += \" \" + className;\n }\n assert(false, `private constructor; use ${method}from* methods`, \"UNSUPPORTED_OPERATION\", {\n operation\n });\n }\n}\n//# sourceMappingURL=errors.js.map","/**\n * Some data helpers.\n *\n *\n * @_subsection api/utils:Data Helpers [about-data]\n */\nimport { assert, assertArgument } from \"./errors.js\";\nfunction _getBytes(value, name, copy) {\n if (value instanceof Uint8Array) {\n if (copy) {\n return new Uint8Array(value);\n }\n return value;\n }\n if (typeof (value) === \"string\" && value.match(/^0x([0-9a-f][0-9a-f])*$/i)) {\n const result = new Uint8Array((value.length - 2) / 2);\n let offset = 2;\n for (let i = 0; i < result.length; i++) {\n result[i] = parseInt(value.substring(offset, offset + 2), 16);\n offset += 2;\n }\n return result;\n }\n assertArgument(false, \"invalid BytesLike value\", name || \"value\", value);\n}\n/**\n * Get a typed Uint8Array for %%value%%. If already a Uint8Array\n * the original %%value%% is returned; if a copy is required use\n * [[getBytesCopy]].\n *\n * @see: getBytesCopy\n */\nexport function getBytes(value, name) {\n return _getBytes(value, name, false);\n}\n/**\n * Get a typed Uint8Array for %%value%%, creating a copy if necessary\n * to prevent any modifications of the returned value from being\n * reflected elsewhere.\n *\n * @see: getBytes\n */\nexport function getBytesCopy(value, name) {\n return _getBytes(value, name, true);\n}\n/**\n * Returns true if %%value%% is a valid [[HexString]].\n *\n * If %%length%% is ``true`` or a //number//, it also checks that\n * %%value%% is a valid [[DataHexString]] of %%length%% (if a //number//)\n * bytes of data (e.g. ``0x1234`` is 2 bytes).\n */\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (typeof (length) === \"number\" && value.length !== 2 + 2 * length) {\n return false;\n }\n if (length === true && (value.length % 2) !== 0) {\n return false;\n }\n return true;\n}\n/**\n * Returns true if %%value%% is a valid representation of arbitrary\n * data (i.e. a valid [[DataHexString]] or a Uint8Array).\n */\nexport function isBytesLike(value) {\n return (isHexString(value, true) || (value instanceof Uint8Array));\n}\nconst HexCharacters = \"0123456789abcdef\";\n/**\n * Returns a [[DataHexString]] representation of %%data%%.\n */\nexport function hexlify(data) {\n const bytes = getBytes(data);\n let result = \"0x\";\n for (let i = 0; i < bytes.length; i++) {\n const v = bytes[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n}\n/**\n * Returns a [[DataHexString]] by concatenating all values\n * within %%data%%.\n */\nexport function concat(datas) {\n return \"0x\" + datas.map((d) => hexlify(d).substring(2)).join(\"\");\n}\n/**\n * Returns the length of %%data%%, in bytes.\n */\nexport function dataLength(data) {\n if (isHexString(data, true)) {\n return (data.length - 2) / 2;\n }\n return getBytes(data).length;\n}\n/**\n * Returns a [[DataHexString]] by slicing %%data%% from the %%start%%\n * offset to the %%end%% offset.\n *\n * By default %%start%% is 0 and %%end%% is the length of %%data%%.\n */\nexport function dataSlice(data, start, end) {\n const bytes = getBytes(data);\n if (end != null && end > bytes.length) {\n assert(false, \"cannot slice beyond data bounds\", \"BUFFER_OVERRUN\", {\n buffer: bytes, length: bytes.length, offset: end\n });\n }\n return hexlify(bytes.slice((start == null) ? 0 : start, (end == null) ? bytes.length : end));\n}\n/**\n * Return the [[DataHexString]] result by stripping all **leading**\n ** zero bytes from %%data%%.\n */\nexport function stripZerosLeft(data) {\n let bytes = hexlify(data).substring(2);\n while (bytes.startsWith(\"00\")) {\n bytes = bytes.substring(2);\n }\n return \"0x\" + bytes;\n}\nfunction zeroPad(data, length, left) {\n const bytes = getBytes(data);\n assert(length >= bytes.length, \"padding exceeds data length\", \"BUFFER_OVERRUN\", {\n buffer: new Uint8Array(bytes),\n length: length,\n offset: length + 1\n });\n const result = new Uint8Array(length);\n result.fill(0);\n if (left) {\n result.set(bytes, length - bytes.length);\n }\n else {\n result.set(bytes, 0);\n }\n return hexlify(result);\n}\n/**\n * Return the [[DataHexString]] of %%data%% padded on the **left**\n * to %%length%% bytes.\n *\n * If %%data%% already exceeds %%length%%, a [[BufferOverrunError]] is\n * thrown.\n *\n * This pads data the same as **values** are in Solidity\n * (e.g. ``uint128``).\n */\nexport function zeroPadValue(data, length) {\n return zeroPad(data, length, true);\n}\n/**\n * Return the [[DataHexString]] of %%data%% padded on the **right**\n * to %%length%% bytes.\n *\n * If %%data%% already exceeds %%length%%, a [[BufferOverrunError]] is\n * thrown.\n *\n * This pads data the same as **bytes** are in Solidity\n * (e.g. ``bytes16``).\n */\nexport function zeroPadBytes(data, length) {\n return zeroPad(data, length, false);\n}\n//# sourceMappingURL=data.js.map","/**\n * Some mathematic operations.\n *\n * @_subsection: api/utils:Math Helpers [about-maths]\n */\nimport { hexlify, isBytesLike } from \"./data.js\";\nimport { assert, assertArgument } from \"./errors.js\";\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\n//const BN_Max256 = (BN_1 << BigInt(256)) - BN_1;\n// IEEE 754 support 53-bits of mantissa\nconst maxValue = 0x1fffffffffffff;\n/**\n * Convert %%value%% from a twos-compliment representation of %%width%%\n * bits to its value.\n *\n * If the highest bit is ``1``, the result will be negative.\n */\nexport function fromTwos(_value, _width) {\n const value = getUint(_value, \"value\");\n const width = BigInt(getNumber(_width, \"width\"));\n assert((value >> width) === BN_0, \"overflow\", \"NUMERIC_FAULT\", {\n operation: \"fromTwos\", fault: \"overflow\", value: _value\n });\n // Top bit set; treat as a negative value\n if (value >> (width - BN_1)) {\n const mask = (BN_1 << width) - BN_1;\n return -(((~value) & mask) + BN_1);\n }\n return value;\n}\n/**\n * Convert %%value%% to a twos-compliment representation of\n * %%width%% bits.\n *\n * The result will always be positive.\n */\nexport function toTwos(_value, _width) {\n let value = getBigInt(_value, \"value\");\n const width = BigInt(getNumber(_width, \"width\"));\n const limit = (BN_1 << (width - BN_1));\n if (value < BN_0) {\n value = -value;\n assert(value <= limit, \"too low\", \"NUMERIC_FAULT\", {\n operation: \"toTwos\", fault: \"overflow\", value: _value\n });\n const mask = (BN_1 << width) - BN_1;\n return ((~value) & mask) + BN_1;\n }\n else {\n assert(value < limit, \"too high\", \"NUMERIC_FAULT\", {\n operation: \"toTwos\", fault: \"overflow\", value: _value\n });\n }\n return value;\n}\n/**\n * Mask %%value%% with a bitmask of %%bits%% ones.\n */\nexport function mask(_value, _bits) {\n const value = getUint(_value, \"value\");\n const bits = BigInt(getNumber(_bits, \"bits\"));\n return value & ((BN_1 << bits) - BN_1);\n}\n/**\n * Gets a BigInt from %%value%%. If it is an invalid value for\n * a BigInt, then an ArgumentError will be thrown for %%name%%.\n */\nexport function getBigInt(value, name) {\n switch (typeof (value)) {\n case \"bigint\": return value;\n case \"number\":\n assertArgument(Number.isInteger(value), \"underflow\", name || \"value\", value);\n assertArgument(value >= -maxValue && value <= maxValue, \"overflow\", name || \"value\", value);\n return BigInt(value);\n case \"string\":\n try {\n if (value === \"\") {\n throw new Error(\"empty string\");\n }\n if (value[0] === \"-\" && value[1] !== \"-\") {\n return -BigInt(value.substring(1));\n }\n return BigInt(value);\n }\n catch (e) {\n assertArgument(false, `invalid BigNumberish string: ${e.message}`, name || \"value\", value);\n }\n }\n assertArgument(false, \"invalid BigNumberish value\", name || \"value\", value);\n}\n/**\n * Returns %%value%% as a bigint, validating it is valid as a bigint\n * value and that it is positive.\n */\nexport function getUint(value, name) {\n const result = getBigInt(value, name);\n assert(result >= BN_0, \"unsigned value cannot be negative\", \"NUMERIC_FAULT\", {\n fault: \"overflow\", operation: \"getUint\", value\n });\n return result;\n}\nconst Nibbles = \"0123456789abcdef\";\n/*\n * Converts %%value%% to a BigInt. If %%value%% is a Uint8Array, it\n * is treated as Big Endian data.\n */\nexport function toBigInt(value) {\n if (value instanceof Uint8Array) {\n let result = \"0x0\";\n for (const v of value) {\n result += Nibbles[v >> 4];\n result += Nibbles[v & 0x0f];\n }\n return BigInt(result);\n }\n return getBigInt(value);\n}\n/**\n * Gets a //number// from %%value%%. If it is an invalid value for\n * a //number//, then an ArgumentError will be thrown for %%name%%.\n */\nexport function getNumber(value, name) {\n switch (typeof (value)) {\n case \"bigint\":\n assertArgument(value >= -maxValue && value <= maxValue, \"overflow\", name || \"value\", value);\n return Number(value);\n case \"number\":\n assertArgument(Number.isInteger(value), \"underflow\", name || \"value\", value);\n assertArgument(value >= -maxValue && value <= maxValue, \"overflow\", name || \"value\", value);\n return value;\n case \"string\":\n try {\n if (value === \"\") {\n throw new Error(\"empty string\");\n }\n return getNumber(BigInt(value), name);\n }\n catch (e) {\n assertArgument(false, `invalid numeric string: ${e.message}`, name || \"value\", value);\n }\n }\n assertArgument(false, \"invalid numeric value\", name || \"value\", value);\n}\n/**\n * Converts %%value%% to a number. If %%value%% is a Uint8Array, it\n * is treated as Big Endian data. Throws if the value is not safe.\n */\nexport function toNumber(value) {\n return getNumber(toBigInt(value));\n}\n/**\n * Converts %%value%% to a Big Endian hexstring, optionally padded to\n * %%width%% bytes.\n */\nexport function toBeHex(_value, _width) {\n const value = getUint(_value, \"value\");\n let result = value.toString(16);\n if (_width == null) {\n // Ensure the value is of even length\n if (result.length % 2) {\n result = \"0\" + result;\n }\n }\n else {\n const width = getNumber(_width, \"width\");\n assert(width * 2 >= result.length, `value exceeds width (${width} bytes)`, \"NUMERIC_FAULT\", {\n operation: \"toBeHex\",\n fault: \"overflow\",\n value: _value\n });\n // Pad the value to the required width\n while (result.length < (width * 2)) {\n result = \"0\" + result;\n }\n }\n return \"0x\" + result;\n}\n/**\n * Converts %%value%% to a Big Endian Uint8Array.\n */\nexport function toBeArray(_value) {\n const value = getUint(_value, \"value\");\n if (value === BN_0) {\n return new Uint8Array([]);\n }\n let hex = value.toString(16);\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n const result = new Uint8Array(hex.length / 2);\n for (let i = 0; i < result.length; i++) {\n const offset = i * 2;\n result[i] = parseInt(hex.substring(offset, offset + 2), 16);\n }\n return result;\n}\n/**\n * Returns a [[HexString]] for %%value%% safe to use as a //Quantity//.\n *\n * A //Quantity// does not have and leading 0 values unless the value is\n * the literal value `0x0`. This is most commonly used for JSSON-RPC\n * numeric values.\n */\nexport function toQuantity(value) {\n let result = hexlify(isBytesLike(value) ? value : toBeArray(value)).substring(2);\n while (result.startsWith(\"0\")) {\n result = result.substring(1);\n }\n if (result === \"\") {\n result = \"0\";\n }\n return \"0x\" + result;\n}\n//# sourceMappingURL=maths.js.map","/**\n * Events allow for applications to use the observer pattern, which\n * allows subscribing and publishing events, outside the normal\n * execution paths.\n *\n * @_section api/utils/events:Events [about-events]\n */\nimport { defineProperties } from \"./properties.js\";\n/**\n * When an [[EventEmitterable]] triggers a [[Listener]], the\n * callback always ahas one additional argument passed, which is\n * an **EventPayload**.\n */\nexport class EventPayload {\n /**\n * The event filter.\n */\n filter;\n /**\n * The **EventEmitterable**.\n */\n emitter;\n #listener;\n /**\n * Create a new **EventPayload** for %%emitter%% with\n * the %%listener%% and for %%filter%%.\n */\n constructor(emitter, listener, filter) {\n this.#listener = listener;\n defineProperties(this, { emitter, filter });\n }\n /**\n * Unregister the triggered listener for future events.\n */\n async removeListener() {\n if (this.#listener == null) {\n return;\n }\n await this.emitter.off(this.filter, this.#listener);\n }\n}\n//# sourceMappingURL=events.js.map","/**\n * Using strings in Ethereum (or any security-basd system) requires\n * additional care. These utilities attempt to mitigate some of the\n * safety issues as well as provide the ability to recover and analyse\n * strings.\n *\n * @_subsection api/utils:Strings and UTF-8 [about-strings]\n */\nimport { getBytes } from \"./data.js\";\nimport { assertArgument, assertNormalize } from \"./errors.js\";\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n assertArgument(false, `invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === \"BAD_PREFIX\" || reason === \"UNEXPECTED_CONTINUE\") {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === \"OVERRUN\") {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === \"OVERLONG\") {\n assertArgument(typeof (badCodepoint) === \"number\", \"invalid bad code point for replacement\", \"badCodepoint\", badCodepoint);\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n/**\n * A handful of popular, built-in UTF-8 error handling strategies.\n *\n * **``\"error\"``** - throws on ANY illegal UTF-8 sequence or\n * non-canonical (overlong) codepoints (this is the default)\n *\n * **``\"ignore\"``** - silently drops any illegal UTF-8 sequence\n * and accepts non-canonical (overlong) codepoints\n *\n * **``\"replace\"``** - replace any illegal UTF-8 sequence with the\n * UTF-8 replacement character (i.e. ``\"\\\\ufffd\"``) and accepts\n * non-canonical (overlong) codepoints\n *\n * @returns: Record<\"error\" | \"ignore\" | \"replace\", Utf8ErrorFunc>\n */\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(_bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n const bytes = getBytes(_bytes, \"bytes\");\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(\"UNEXPECTED_CONTINUE\", i - 1, bytes, result);\n }\n else {\n i += onError(\"BAD_PREFIX\", i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(\"OVERRUN\", i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(\"MISSING_CONTINUE\", i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(\"OUT_OF_RANGE\", i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(\"UTF16_SURROGATE\", i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(\"OVERLONG\", i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\n/**\n * Returns the UTF-8 byte representation of %%str%%.\n *\n * If %%form%% is specified, the string is normalized.\n */\nexport function toUtf8Bytes(str, form) {\n assertArgument(typeof (str) === \"string\", \"invalid string value\", \"str\", str);\n if (form != null) {\n assertNormalize(form);\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n assertArgument(i < str.length && ((c2 & 0xfc00) === 0xdc00), \"invalid surrogate pair\", \"str\", str);\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return new Uint8Array(result);\n}\n;\n//export \nfunction _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\n/**\n * Returns the string represented by the UTF-8 data %%bytes%%.\n *\n * When %%onError%% function is specified, it is called on UTF-8\n * errors allowing recovery using the [[Utf8ErrorFunc]] API.\n * (default: [error](Utf8ErrorFuncs))\n */\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\n/**\n * Returns the UTF-8 code-points for %%str%%.\n *\n * If %%form%% is specified, the string is normalized.\n */\nexport function toUtf8CodePoints(str, form) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","import { defineProperties, concat, getBytesCopy, getNumber, hexlify, toBeArray, toBigInt, toNumber, assert, assertArgument } from \"../../utils/index.js\";\n/**\n * @_ignore:\n */\nexport const WordSize = 32;\nconst Padding = new Uint8Array(WordSize);\n// Properties used to immediate pass through to the underlying object\n// - `then` is used to detect if an object is a Promise for await\nconst passProperties = [\"then\"];\nconst _guard = {};\nfunction throwError(name, error) {\n const wrapped = new Error(`deferred error during ABI decoding triggered accessing ${name}`);\n wrapped.error = error;\n throw wrapped;\n}\n/**\n * A [[Result]] is a sub-class of Array, which allows accessing any\n * of its values either positionally by its index or, if keys are\n * provided by its name.\n *\n * @_docloc: api/abi\n */\nexport class Result extends Array {\n #names;\n /**\n * @private\n */\n constructor(...args) {\n // To properly sub-class Array so the other built-in\n // functions work, the constructor has to behave fairly\n // well. So, in the event we are created via fromItems()\n // we build the read-only Result object we want, but on\n // any other input, we use the default constructor\n // constructor(guard: any, items: Array<any>, keys?: Array<null | string>);\n const guard = args[0];\n let items = args[1];\n let names = (args[2] || []).slice();\n let wrap = true;\n if (guard !== _guard) {\n items = args;\n names = [];\n wrap = false;\n }\n // Can't just pass in ...items since an array of length 1\n // is a special case in the super.\n super(items.length);\n items.forEach((item, index) => { this[index] = item; });\n // Find all unique keys\n const nameCounts = names.reduce((accum, name) => {\n if (typeof (name) === \"string\") {\n accum.set(name, (accum.get(name) || 0) + 1);\n }\n return accum;\n }, (new Map()));\n // Remove any key thats not unique\n this.#names = Object.freeze(items.map((item, index) => {\n const name = names[index];\n if (name != null && nameCounts.get(name) === 1) {\n return name;\n }\n return null;\n }));\n if (!wrap) {\n return;\n }\n // A wrapped Result is immutable\n Object.freeze(this);\n // Proxy indices and names so we can trap deferred errors\n return new Proxy(this, {\n get: (target, prop, receiver) => {\n if (typeof (prop) === \"string\") {\n // Index accessor\n if (prop.match(/^[0-9]+$/)) {\n const index = getNumber(prop, \"%index\");\n if (index < 0 || index >= this.length) {\n throw new RangeError(\"out of result range\");\n }\n const item = target[index];\n if (item instanceof Error) {\n throwError(`index ${index}`, item);\n }\n return item;\n }\n // Pass important checks (like `then` for Promise) through\n if (passProperties.indexOf(prop) >= 0) {\n return Reflect.get(target, prop, receiver);\n }\n const value = target[prop];\n if (value instanceof Function) {\n // Make sure functions work with private variables\n // See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy#no_private_property_forwarding\n return function (...args) {\n return value.apply((this === receiver) ? target : this, args);\n };\n }\n else if (!(prop in target)) {\n // Possible name accessor\n return target.getValue.apply((this === receiver) ? target : this, [prop]);\n }\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n }\n /**\n * Returns the Result as a normal Array. If %%deep%%, any children\n * which are Result objects are also converted to a normal Array.\n *\n * This will throw if there are any outstanding deferred\n * errors.\n */\n toArray(deep) {\n const result = [];\n this.forEach((item, index) => {\n if (item instanceof Error) {\n throwError(`index ${index}`, item);\n }\n if (deep && item instanceof Result) {\n item = item.toArray(deep);\n }\n result.push(item);\n });\n return result;\n }\n /**\n * Returns the Result as an Object with each name-value pair. If\n * %%deep%%, any children which are Result objects are also\n * converted to an Object.\n *\n * This will throw if any value is unnamed, or if there are\n * any outstanding deferred errors.\n */\n toObject(deep) {\n return this.#names.reduce((accum, name, index) => {\n assert(name != null, \"value at index ${ index } unnamed\", \"UNSUPPORTED_OPERATION\", {\n operation: \"toObject()\"\n });\n // Add values for names that don't conflict\n if (!(name in accum)) {\n let child = this.getValue(name);\n if (deep && child instanceof Result) {\n child = child.toObject(deep);\n }\n accum[name] = child;\n }\n return accum;\n }, {});\n }\n /**\n * @_ignore\n */\n slice(start, end) {\n if (start == null) {\n start = 0;\n }\n if (start < 0) {\n start += this.length;\n if (start < 0) {\n start = 0;\n }\n }\n if (end == null) {\n end = this.length;\n }\n if (end < 0) {\n end += this.length;\n if (end < 0) {\n end = 0;\n }\n }\n if (end > this.length) {\n end = this.length;\n }\n const result = [], names = [];\n for (let i = start; i < end; i++) {\n result.push(this[i]);\n names.push(this.#names[i]);\n }\n return new Result(_guard, result, names);\n }\n /**\n * @_ignore\n */\n filter(callback, thisArg) {\n const result = [], names = [];\n for (let i = 0; i < this.length; i++) {\n const item = this[i];\n if (item instanceof Error) {\n throwError(`index ${i}`, item);\n }\n if (callback.call(thisArg, item, i, this)) {\n result.push(item);\n names.push(this.#names[i]);\n }\n }\n return new Result(_guard, result, names);\n }\n /**\n * @_ignore\n */\n map(callback, thisArg) {\n const result = [];\n for (let i = 0; i < this.length; i++) {\n const item = this[i];\n if (item instanceof Error) {\n throwError(`index ${i}`, item);\n }\n result.push(callback.call(thisArg, item, i, this));\n }\n return result;\n }\n /**\n * Returns the value for %%name%%.\n *\n * Since it is possible to have a key whose name conflicts with\n * a method on a [[Result]] or its superclass Array, or any\n * JavaScript keyword, this ensures all named values are still\n * accessible by name.\n */\n getValue(name) {\n const index = this.#names.indexOf(name);\n if (index === -1) {\n return undefined;\n }\n const value = this[index];\n if (value instanceof Error) {\n throwError(`property ${JSON.stringify(name)}`, value.error);\n }\n return value;\n }\n /**\n * Creates a new [[Result]] for %%items%% with each entry\n * also accessible by its corresponding name in %%keys%%.\n */\n static fromItems(items, keys) {\n return new Result(_guard, items, keys);\n }\n}\n/**\n * Returns all errors found in a [[Result]].\n *\n * Since certain errors encountered when creating a [[Result]] do\n * not impact the ability to continue parsing data, they are\n * deferred until they are actually accessed. Hence a faulty string\n * in an Event that is never used does not impact the program flow.\n *\n * However, sometimes it may be useful to access, identify or\n * validate correctness of a [[Result]].\n *\n * @_docloc api/abi\n */\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nfunction getValue(value) {\n let bytes = toBeArray(value);\n assert(bytes.length <= WordSize, \"value out-of-bounds\", \"BUFFER_OVERRUN\", { buffer: bytes, length: WordSize, offset: bytes.length });\n if (bytes.length !== WordSize) {\n bytes = getBytesCopy(concat([Padding.slice(bytes.length % WordSize), bytes]));\n }\n return bytes;\n}\n/**\n * @_ignore\n */\nexport class Coder {\n // The coder name:\n // - address, uint256, tuple, array, etc.\n name;\n // The fully expanded type, including composite types:\n // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.\n type;\n // The localName bound in the signature, in this example it is \"baz\":\n // - tuple(address foo, uint bar) baz\n localName;\n // Whether this type is dynamic:\n // - Dynamic: bytes, string, address[], tuple(boolean[]), etc.\n // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)\n dynamic;\n constructor(name, type, localName, dynamic) {\n defineProperties(this, { name, type, localName, dynamic }, {\n name: \"string\", type: \"string\", localName: \"string\", dynamic: \"boolean\"\n });\n }\n _throwError(message, value) {\n assertArgument(false, message, this.localName, value);\n }\n}\n/**\n * @_ignore\n */\nexport class Writer {\n // An array of WordSize lengthed objects to concatenation\n #data;\n #dataLength;\n constructor() {\n this.#data = [];\n this.#dataLength = 0;\n }\n get data() {\n return concat(this.#data);\n }\n get length() { return this.#dataLength; }\n #writeData(data) {\n this.#data.push(data);\n this.#dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this.#writeData(getBytesCopy(writer.data));\n }\n // Arrayish item; pad on the right to *nearest* WordSize\n writeBytes(value) {\n let bytes = getBytesCopy(value);\n const paddingOffset = bytes.length % WordSize;\n if (paddingOffset) {\n bytes = getBytesCopy(concat([bytes, Padding.slice(paddingOffset)]));\n }\n return this.#writeData(bytes);\n }\n // Numeric item; pad on the left *to* WordSize\n writeValue(value) {\n return this.#writeData(getValue(value));\n }\n // Inserts a numeric place-holder, returning a callback that can\n // be used to asjust the value later\n writeUpdatableValue() {\n const offset = this.#data.length;\n this.#data.push(Padding);\n this.#dataLength += WordSize;\n return (value) => {\n this.#data[offset] = getValue(value);\n };\n }\n}\n/**\n * @_ignore\n */\nexport class Reader {\n // Allows incomplete unpadded data to be read; otherwise an error\n // is raised if attempting to overrun the buffer. This is required\n // to deal with an old Solidity bug, in which event data for\n // external (not public thoguh) was tightly packed.\n allowLoose;\n #data;\n #offset;\n #bytesRead;\n #parent;\n #maxInflation;\n constructor(data, allowLoose, maxInflation) {\n defineProperties(this, { allowLoose: !!allowLoose });\n this.#data = getBytesCopy(data);\n this.#bytesRead = 0;\n this.#parent = null;\n this.#maxInflation = (maxInflation != null) ? maxInflation : 1024;\n this.#offset = 0;\n }\n get data() { return hexlify(this.#data); }\n get dataLength() { return this.#data.length; }\n get consumed() { return this.#offset; }\n get bytes() { return new Uint8Array(this.#data); }\n #incrementBytesRead(count) {\n if (this.#parent) {\n return this.#parent.#incrementBytesRead(count);\n }\n this.#bytesRead += count;\n // Check for excessive inflation (see: #4537)\n assert(this.#maxInflation < 1 || this.#bytesRead <= this.#maxInflation * this.dataLength, `compressed ABI data exceeds inflation ratio of ${this.#maxInflation} ( see: https:/\\/github.com/ethers-io/ethers.js/issues/4537 )`, \"BUFFER_OVERRUN\", {\n buffer: getBytesCopy(this.#data), offset: this.#offset,\n length: count, info: {\n bytesRead: this.#bytesRead,\n dataLength: this.dataLength\n }\n });\n }\n #peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / WordSize) * WordSize;\n if (this.#offset + alignedLength > this.#data.length) {\n if (this.allowLoose && loose && this.#offset + length <= this.#data.length) {\n alignedLength = length;\n }\n else {\n assert(false, \"data out-of-bounds\", \"BUFFER_OVERRUN\", {\n buffer: getBytesCopy(this.#data),\n length: this.#data.length,\n offset: this.#offset + alignedLength\n });\n }\n }\n return this.#data.slice(this.#offset, this.#offset + alignedLength);\n }\n // Create a sub-reader with the same underlying data, but offset\n subReader(offset) {\n const reader = new Reader(this.#data.slice(this.#offset + offset), this.allowLoose, this.#maxInflation);\n reader.#parent = this;\n return reader;\n }\n // Read bytes\n readBytes(length, loose) {\n let bytes = this.#peekBytes(0, length, !!loose);\n this.#incrementBytesRead(length);\n this.#offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n // Read a numeric values\n readValue() {\n return toBigInt(this.readBytes(WordSize));\n }\n readIndex() {\n return toNumber(this.readBytes(WordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import { exists, output } from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n exists(this);\n output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = /* @__PURE__ */ new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = /* @__PURE__ */ wrapConstructor(() => new SHA256());\nexport const sha224 = /* @__PURE__ */ wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = /* @__PURE__ */ wrapConstructor(() => new SHA512());\nexport const sha512_224 = /* @__PURE__ */ wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = /* @__PURE__ */ wrapConstructor(() => new SHA512_256());\nexport const sha384 = /* @__PURE__ */ wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","/* Browser Crypto Shims */\nimport { hmac } from \"@noble/hashes/hmac\";\nimport { pbkdf2 } from \"@noble/hashes/pbkdf2\";\nimport { sha256 } from \"@noble/hashes/sha256\";\nimport { sha512 } from \"@noble/hashes/sha512\";\nimport { assert, assertArgument } from \"../utils/index.js\";\nfunction getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n}\n;\nconst anyGlobal = getGlobal();\nconst crypto = anyGlobal.crypto || anyGlobal.msCrypto;\nexport function createHash(algo) {\n switch (algo) {\n case \"sha256\": return sha256.create();\n case \"sha512\": return sha512.create();\n }\n assertArgument(false, \"invalid hashing algorithm name\", \"algorithm\", algo);\n}\nexport function createHmac(_algo, key) {\n const algo = ({ sha256, sha512 }[_algo]);\n assertArgument(algo != null, \"invalid hmac algorithm\", \"algorithm\", _algo);\n return hmac.create(algo, key);\n}\nexport function pbkdf2Sync(password, salt, iterations, keylen, _algo) {\n const algo = ({ sha256, sha512 }[_algo]);\n assertArgument(algo != null, \"invalid pbkdf2 algorithm\", \"algorithm\", _algo);\n return pbkdf2(algo, password, salt, { c: iterations, dkLen: keylen });\n}\nexport function randomBytes(length) {\n assert(crypto != null, \"platform does not support secure random numbers\", \"UNSUPPORTED_OPERATION\", {\n operation: \"randomBytes\"\n });\n assertArgument(Number.isInteger(length) && length > 0 && length <= 1024, \"invalid length\", \"length\", length);\n const result = new Uint8Array(length);\n crypto.getRandomValues(result);\n return result;\n}\n//# sourceMappingURL=crypto-browser.js.map","import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","/**\n * Cryptographic hashing functions\n *\n * @_subsection: api/crypto:Hash Functions [about-crypto-hashing]\n */\nimport { keccak_256 } from \"@noble/hashes/sha3\";\nimport { getBytes, hexlify } from \"../utils/index.js\";\nlet locked = false;\nconst _keccak256 = function (data) {\n return keccak_256(data);\n};\nlet __keccak256 = _keccak256;\n/**\n * Compute the cryptographic KECCAK256 hash of %%data%%.\n *\n * The %%data%% **must** be a data representation, to compute the\n * hash of UTF-8 data use the [[id]] function.\n *\n * @returns DataHexstring\n * @example:\n * keccak256(\"0x\")\n * //_result:\n *\n * keccak256(\"0x1337\")\n * //_result:\n *\n * keccak256(new Uint8Array([ 0x13, 0x37 ]))\n * //_result:\n *\n * // Strings are assumed to be DataHexString, otherwise it will\n * // throw. To hash UTF-8 data, see the note above.\n * keccak256(\"Hello World\")\n * //_error:\n */\nexport function keccak256(_data) {\n const data = getBytes(_data, \"data\");\n return hexlify(__keccak256(data));\n}\nkeccak256._ = _keccak256;\nkeccak256.lock = function () { locked = true; };\nkeccak256.register = function (func) {\n if (locked) {\n throw new TypeError(\"keccak256 is locked\");\n }\n __keccak256 = func;\n};\nObject.freeze(keccak256);\n//# sourceMappingURL=keccak.js.map","import { createHash } from \"./crypto.js\";\nimport { getBytes, hexlify } from \"../utils/index.js\";\nconst _sha256 = function (data) {\n return createHash(\"sha256\").update(data).digest();\n};\nconst _sha512 = function (data) {\n return createHash(\"sha512\").update(data).digest();\n};\nlet __sha256 = _sha256;\nlet __sha512 = _sha512;\nlet locked256 = false, locked512 = false;\n/**\n * Compute the cryptographic SHA2-256 hash of %%data%%.\n *\n * @_docloc: api/crypto:Hash Functions\n * @returns DataHexstring\n *\n * @example:\n * sha256(\"0x\")\n * //_result:\n *\n * sha256(\"0x1337\")\n * //_result:\n *\n * sha256(new Uint8Array([ 0x13, 0x37 ]))\n * //_result:\n *\n */\nexport function sha256(_data) {\n const data = getBytes(_data, \"data\");\n return hexlify(__sha256(data));\n}\nsha256._ = _sha256;\nsha256.lock = function () { locked256 = true; };\nsha256.register = function (func) {\n if (locked256) {\n throw new Error(\"sha256 is locked\");\n }\n __sha256 = func;\n};\nObject.freeze(sha256);\n/**\n * Compute the cryptographic SHA2-512 hash of %%data%%.\n *\n * @_docloc: api/crypto:Hash Functions\n * @returns DataHexstring\n *\n * @example:\n * sha512(\"0x\")\n * //_result:\n *\n * sha512(\"0x1337\")\n * //_result:\n *\n * sha512(new Uint8Array([ 0x13, 0x37 ]))\n * //_result:\n */\nexport function sha512(_data) {\n const data = getBytes(_data, \"data\");\n return hexlify(__sha512(data));\n}\nsha512._ = _sha512;\nsha512.lock = function () { locked512 = true; };\nsha512.register = function (func) {\n if (locked512) {\n throw new Error(\"sha512 is locked\");\n }\n __sha512 = func;\n};\nObject.freeze(sha256);\n//# sourceMappingURL=sha2.js.map","import { keccak256 } from \"../crypto/index.js\";\nimport { getBytes, assertArgument } from \"../utils/index.js\";\nconst BN_0 = BigInt(0);\nconst BN_36 = BigInt(36);\nfunction getChecksumAddress(address) {\n // if (!isHexString(address, 20)) {\n // logger.throwArgumentError(\"invalid address\", \"address\", address);\n // }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = getBytes(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\n// i.e. Math.floor(Math.log10(Number.MAX_SAFE_INTEGER));\nconst safeDigits = 15;\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nconst Base36 = (function () {\n ;\n const result = {};\n for (let i = 0; i < 36; i++) {\n const key = \"0123456789abcdefghijklmnopqrstuvwxyz\"[i];\n result[key] = BigInt(i);\n }\n return result;\n})();\nfunction fromBase36(value) {\n value = value.toLowerCase();\n let result = BN_0;\n for (let i = 0; i < value.length; i++) {\n result = result * BN_36 + Base36[value[i]];\n }\n return result;\n}\n/**\n * Returns a normalized and checksumed address for %%address%%.\n * This accepts non-checksum addresses, checksum addresses and\n * [[getIcapAddress]] formats.\n *\n * The checksum in Ethereum uses the capitalization (upper-case\n * vs lower-case) of the characters within an address to encode\n * its checksum, which offers, on average, a checksum of 15-bits.\n *\n * If %%address%% contains both upper-case and lower-case, it is\n * assumed to already be a checksum address and its checksum is\n * validated, and if the address fails its expected checksum an\n * error is thrown.\n *\n * If you wish the checksum of %%address%% to be ignore, it should\n * be converted to lower-case (i.e. ``.toLowercase()``) before\n * being passed in. This should be a very rare situation though,\n * that you wish to bypass the safegaurds in place to protect\n * against an address that has been incorrectly copied from another\n * source.\n *\n * @example:\n * // Adds the checksum (via upper-casing specific letters)\n * getAddress(\"0x8ba1f109551bd432803012645ac136ddd64dba72\")\n * //_result:\n *\n * // Converts ICAP address and adds checksum\n * getAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\");\n * //_result:\n *\n * // Throws an error if an address contains mixed case,\n * // but the checksum fails\n * getAddress(\"0x8Ba1f109551bD432803012645Ac136ddd64DBA72\")\n * //_error:\n */\nexport function getAddress(address) {\n assertArgument(typeof (address) === \"string\", \"invalid address\", \"address\", address);\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (!address.startsWith(\"0x\")) {\n address = \"0x\" + address;\n }\n const result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n assertArgument(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, \"bad address checksum\", \"address\", address);\n return result;\n }\n // Maybe ICAP? (we only support direct mode)\n if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n assertArgument(address.substring(2, 4) === ibanChecksum(address), \"bad icap checksum\", \"address\", address);\n let result = fromBase36(address.substring(4)).toString(16);\n while (result.length < 40) {\n result = \"0\" + result;\n }\n return getChecksumAddress(\"0x\" + result);\n }\n assertArgument(false, \"invalid address\", \"address\", address);\n}\n/**\n * The [ICAP Address format](link-icap) format is an early checksum\n * format which attempts to be compatible with the banking\n * industry [IBAN format](link-wiki-iban) for bank accounts.\n *\n * It is no longer common or a recommended format.\n *\n * @example:\n * getIcapAddress(\"0x8ba1f109551bd432803012645ac136ddd64dba72\");\n * //_result:\n *\n * getIcapAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\");\n * //_result:\n *\n * // Throws an error if the ICAP checksum is wrong\n * getIcapAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK37\");\n * //_error:\n */\nexport function getIcapAddress(address) {\n //let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n let base36 = BigInt(getAddress(address)).toString(36).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n//# sourceMappingURL=address.js.map","import { assert, assertArgument } from \"../utils/index.js\";\nimport { getAddress } from \"./address.js\";\n/**\n * Returns true if %%value%% is an object which implements the\n * [[Addressable]] interface.\n *\n * @example:\n * // Wallets and AbstractSigner sub-classes\n * isAddressable(Wallet.createRandom())\n * //_result:\n *\n * // Contracts\n * contract = new Contract(\"dai.tokens.ethers.eth\", [ ], provider)\n * isAddressable(contract)\n * //_result:\n */\nexport function isAddressable(value) {\n return (value && typeof (value.getAddress) === \"function\");\n}\n/**\n * Returns true if %%value%% is a valid address.\n *\n * @example:\n * // Valid address\n * isAddress(\"0x8ba1f109551bD432803012645Ac136ddd64DBA72\")\n * //_result:\n *\n * // Valid ICAP address\n * isAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\")\n * //_result:\n *\n * // Invalid checksum\n * isAddress(\"0x8Ba1f109551bD432803012645Ac136ddd64DBa72\")\n * //_result:\n *\n * // Invalid ICAP checksum\n * isAddress(\"0x8Ba1f109551bD432803012645Ac136ddd64DBA72\")\n * //_result:\n *\n * // Not an address (an ENS name requires a provided and an\n * // asynchronous API to access)\n * isAddress(\"ricmoo.eth\")\n * //_result:\n */\nexport function isAddress(value) {\n try {\n getAddress(value);\n return true;\n }\n catch (error) { }\n return false;\n}\nasync function checkAddress(target, promise) {\n const result = await promise;\n if (result == null || result === \"0x0000000000000000000000000000000000000000\") {\n assert(typeof (target) !== \"string\", \"unconfigured name\", \"UNCONFIGURED_NAME\", { value: target });\n assertArgument(false, \"invalid AddressLike value; did not resolve to a value address\", \"target\", target);\n }\n return getAddress(result);\n}\n/**\n * Resolves to an address for the %%target%%, which may be any\n * supported address type, an [[Addressable]] or a Promise which\n * resolves to an address.\n *\n * If an ENS name is provided, but that name has not been correctly\n * configured a [[UnconfiguredNameError]] is thrown.\n *\n * @example:\n * addr = \"0x6B175474E89094C44Da98b954EedeAC495271d0F\"\n *\n * // Addresses are return synchronously\n * resolveAddress(addr, provider)\n * //_result:\n *\n * // Address promises are resolved asynchronously\n * resolveAddress(Promise.resolve(addr))\n * //_result:\n *\n * // ENS names are resolved asynchronously\n * resolveAddress(\"dai.tokens.ethers.eth\", provider)\n * //_result:\n *\n * // Addressable objects are resolved asynchronously\n * contract = new Contract(addr, [ ])\n * resolveAddress(contract, provider)\n * //_result:\n *\n * // Unconfigured ENS names reject\n * resolveAddress(\"nothing-here.ricmoo.eth\", provider)\n * //_error:\n *\n * // ENS names require a NameResolver object passed in\n * // (notice the provider was omitted)\n * resolveAddress(\"nothing-here.ricmoo.eth\")\n * //_error:\n */\nexport function resolveAddress(target, resolver) {\n if (typeof (target) === \"string\") {\n if (target.match(/^0x[0-9a-f]{40}$/i)) {\n return getAddress(target);\n }\n assert(resolver != null, \"ENS resolution requires a provider\", \"UNSUPPORTED_OPERATION\", { operation: \"resolveName\" });\n return checkAddress(target, resolver.resolveName(target));\n }\n else if (isAddressable(target)) {\n return checkAddress(target, target.getAddress());\n }\n else if (target && typeof (target.then) === \"function\") {\n return checkAddress(target, target);\n }\n assertArgument(false, \"unsupported addressable value\", \"target\", target);\n}\n//# sourceMappingURL=checks.js.map","/**\n * A Typed object allows a value to have its type explicitly\n * specified.\n *\n * For example, in Solidity, the value ``45`` could represent a\n * ``uint8`` or a ``uint256``. The value ``0x1234`` could represent\n * a ``bytes2`` or ``bytes``.\n *\n * Since JavaScript has no meaningful way to explicitly inform any\n * APIs which what the type is, this allows transparent interoperation\n * with Soldity.\n *\n * @_subsection: api/abi:Typed Values\n */\nimport { assertPrivate, defineProperties } from \"../utils/index.js\";\nconst _gaurd = {};\nfunction n(value, width) {\n let signed = false;\n if (width < 0) {\n signed = true;\n width *= -1;\n }\n // @TODO: Check range is valid for value\n return new Typed(_gaurd, `${signed ? \"\" : \"u\"}int${width}`, value, { signed, width });\n}\nfunction b(value, size) {\n // @TODO: Check range is valid for value\n return new Typed(_gaurd, `bytes${(size) ? size : \"\"}`, value, { size });\n}\nconst _typedSymbol = Symbol.for(\"_ethers_typed\");\n/**\n * The **Typed** class to wrap values providing explicit type information.\n */\nexport class Typed {\n /**\n * The type, as a Solidity-compatible type.\n */\n type;\n /**\n * The actual value.\n */\n value;\n #options;\n /**\n * @_ignore:\n */\n _typedSymbol;\n /**\n * @_ignore:\n */\n constructor(gaurd, type, value, options) {\n if (options == null) {\n options = null;\n }\n assertPrivate(_gaurd, gaurd, \"Typed\");\n defineProperties(this, { _typedSymbol, type, value });\n this.#options = options;\n // Check the value is valid\n this.format();\n }\n /**\n * Format the type as a Human-Readable type.\n */\n format() {\n if (this.type === \"array\") {\n throw new Error(\"\");\n }\n else if (this.type === \"dynamicArray\") {\n throw new Error(\"\");\n }\n else if (this.type === \"tuple\") {\n return `tuple(${this.value.map((v) => v.format()).join(\",\")})`;\n }\n return this.type;\n }\n /**\n * The default value returned by this type.\n */\n defaultValue() {\n return 0;\n }\n /**\n * The minimum value for numeric types.\n */\n minValue() {\n return 0;\n }\n /**\n * The maximum value for numeric types.\n */\n maxValue() {\n return 0;\n }\n /**\n * Returns ``true`` and provides a type guard is this is a [[TypedBigInt]].\n */\n isBigInt() {\n return !!(this.type.match(/^u?int[0-9]+$/));\n }\n /**\n * Returns ``true`` and provides a type guard is this is a [[TypedData]].\n */\n isData() {\n return this.type.startsWith(\"bytes\");\n }\n /**\n * Returns ``true`` and provides a type guard is this is a [[TypedString]].\n */\n isString() {\n return (this.type === \"string\");\n }\n /**\n * Returns the tuple name, if this is a tuple. Throws otherwise.\n */\n get tupleName() {\n if (this.type !== \"tuple\") {\n throw TypeError(\"not a tuple\");\n }\n return this.#options;\n }\n // Returns the length of this type as an array\n // - `null` indicates the length is unforced, it could be dynamic\n // - `-1` indicates the length is dynamic\n // - any other value indicates it is a static array and is its length\n /**\n * Returns the length of the array type or ``-1`` if it is dynamic.\n *\n * Throws if the type is not an array.\n */\n get arrayLength() {\n if (this.type !== \"array\") {\n throw TypeError(\"not an array\");\n }\n if (this.#options === true) {\n return -1;\n }\n if (this.#options === false) {\n return (this.value).length;\n }\n return null;\n }\n /**\n * Returns a new **Typed** of %%type%% with the %%value%%.\n */\n static from(type, value) {\n return new Typed(_gaurd, type, value);\n }\n /**\n * Return a new ``uint8`` type for %%v%%.\n */\n static uint8(v) { return n(v, 8); }\n /**\n * Return a new ``uint16`` type for %%v%%.\n */\n static uint16(v) { return n(v, 16); }\n /**\n * Return a new ``uint24`` type for %%v%%.\n */\n static uint24(v) { return n(v, 24); }\n /**\n * Return a new ``uint32`` type for %%v%%.\n */\n static uint32(v) { return n(v, 32); }\n /**\n * Return a new ``uint40`` type for %%v%%.\n */\n static uint40(v) { return n(v, 40); }\n /**\n * Return a new ``uint48`` type for %%v%%.\n */\n static uint48(v) { return n(v, 48); }\n /**\n * Return a new ``uint56`` type for %%v%%.\n */\n static uint56(v) { return n(v, 56); }\n /**\n * Return a new ``uint64`` type for %%v%%.\n */\n static uint64(v) { return n(v, 64); }\n /**\n * Return a new ``uint72`` type for %%v%%.\n */\n static uint72(v) { return n(v, 72); }\n /**\n * Return a new ``uint80`` type for %%v%%.\n */\n static uint80(v) { return n(v, 80); }\n /**\n * Return a new ``uint88`` type for %%v%%.\n */\n static uint88(v) { return n(v, 88); }\n /**\n * Return a new ``uint96`` type for %%v%%.\n */\n static uint96(v) { return n(v, 96); }\n /**\n * Return a new ``uint104`` type for %%v%%.\n */\n static uint104(v) { return n(v, 104); }\n /**\n * Return a new ``uint112`` type for %%v%%.\n */\n static uint112(v) { return n(v, 112); }\n /**\n * Return a new ``uint120`` type for %%v%%.\n */\n static uint120(v) { return n(v, 120); }\n /**\n * Return a new ``uint128`` type for %%v%%.\n */\n static uint128(v) { return n(v, 128); }\n /**\n * Return a new ``uint136`` type for %%v%%.\n */\n static uint136(v) { return n(v, 136); }\n /**\n * Return a new ``uint144`` type for %%v%%.\n */\n static uint144(v) { return n(v, 144); }\n /**\n * Return a new ``uint152`` type for %%v%%.\n */\n static uint152(v) { return n(v, 152); }\n /**\n * Return a new ``uint160`` type for %%v%%.\n */\n static uint160(v) { return n(v, 160); }\n /**\n * Return a new ``uint168`` type for %%v%%.\n */\n static uint168(v) { return n(v, 168); }\n /**\n * Return a new ``uint176`` type for %%v%%.\n */\n static uint176(v) { return n(v, 176); }\n /**\n * Return a new ``uint184`` type for %%v%%.\n */\n static uint184(v) { return n(v, 184); }\n /**\n * Return a new ``uint192`` type for %%v%%.\n */\n static uint192(v) { return n(v, 192); }\n /**\n * Return a new ``uint200`` type for %%v%%.\n */\n static uint200(v) { return n(v, 200); }\n /**\n * Return a new ``uint208`` type for %%v%%.\n */\n static uint208(v) { return n(v, 208); }\n /**\n * Return a new ``uint216`` type for %%v%%.\n */\n static uint216(v) { return n(v, 216); }\n /**\n * Return a new ``uint224`` type for %%v%%.\n */\n static uint224(v) { return n(v, 224); }\n /**\n * Return a new ``uint232`` type for %%v%%.\n */\n static uint232(v) { return n(v, 232); }\n /**\n * Return a new ``uint240`` type for %%v%%.\n */\n static uint240(v) { return n(v, 240); }\n /**\n * Return a new ``uint248`` type for %%v%%.\n */\n static uint248(v) { return n(v, 248); }\n /**\n * Return a new ``uint256`` type for %%v%%.\n */\n static uint256(v) { return n(v, 256); }\n /**\n * Return a new ``uint256`` type for %%v%%.\n */\n static uint(v) { return n(v, 256); }\n /**\n * Return a new ``int8`` type for %%v%%.\n */\n static int8(v) { return n(v, -8); }\n /**\n * Return a new ``int16`` type for %%v%%.\n */\n static int16(v) { return n(v, -16); }\n /**\n * Return a new ``int24`` type for %%v%%.\n */\n static int24(v) { return n(v, -24); }\n /**\n * Return a new ``int32`` type for %%v%%.\n */\n static int32(v) { return n(v, -32); }\n /**\n * Return a new ``int40`` type for %%v%%.\n */\n static int40(v) { return n(v, -40); }\n /**\n * Return a new ``int48`` type for %%v%%.\n */\n static int48(v) { return n(v, -48); }\n /**\n * Return a new ``int56`` type for %%v%%.\n */\n static int56(v) { return n(v, -56); }\n /**\n * Return a new ``int64`` type for %%v%%.\n */\n static int64(v) { return n(v, -64); }\n /**\n * Return a new ``int72`` type for %%v%%.\n */\n static int72(v) { return n(v, -72); }\n /**\n * Return a new ``int80`` type for %%v%%.\n */\n static int80(v) { return n(v, -80); }\n /**\n * Return a new ``int88`` type for %%v%%.\n */\n static int88(v) { return n(v, -88); }\n /**\n * Return a new ``int96`` type for %%v%%.\n */\n static int96(v) { return n(v, -96); }\n /**\n * Return a new ``int104`` type for %%v%%.\n */\n static int104(v) { return n(v, -104); }\n /**\n * Return a new ``int112`` type for %%v%%.\n */\n static int112(v) { return n(v, -112); }\n /**\n * Return a new ``int120`` type for %%v%%.\n */\n static int120(v) { return n(v, -120); }\n /**\n * Return a new ``int128`` type for %%v%%.\n */\n static int128(v) { return n(v, -128); }\n /**\n * Return a new ``int136`` type for %%v%%.\n */\n static int136(v) { return n(v, -136); }\n /**\n * Return a new ``int144`` type for %%v%%.\n */\n static int144(v) { return n(v, -144); }\n /**\n * Return a new ``int52`` type for %%v%%.\n */\n static int152(v) { return n(v, -152); }\n /**\n * Return a new ``int160`` type for %%v%%.\n */\n static int160(v) { return n(v, -160); }\n /**\n * Return a new ``int168`` type for %%v%%.\n */\n static int168(v) { return n(v, -168); }\n /**\n * Return a new ``int176`` type for %%v%%.\n */\n static int176(v) { return n(v, -176); }\n /**\n * Return a new ``int184`` type for %%v%%.\n */\n static int184(v) { return n(v, -184); }\n /**\n * Return a new ``int92`` type for %%v%%.\n */\n static int192(v) { return n(v, -192); }\n /**\n * Return a new ``int200`` type for %%v%%.\n */\n static int200(v) { return n(v, -200); }\n /**\n * Return a new ``int208`` type for %%v%%.\n */\n static int208(v) { return n(v, -208); }\n /**\n * Return a new ``int216`` type for %%v%%.\n */\n static int216(v) { return n(v, -216); }\n /**\n * Return a new ``int224`` type for %%v%%.\n */\n static int224(v) { return n(v, -224); }\n /**\n * Return a new ``int232`` type for %%v%%.\n */\n static int232(v) { return n(v, -232); }\n /**\n * Return a new ``int240`` type for %%v%%.\n */\n static int240(v) { return n(v, -240); }\n /**\n * Return a new ``int248`` type for %%v%%.\n */\n static int248(v) { return n(v, -248); }\n /**\n * Return a new ``int256`` type for %%v%%.\n */\n static int256(v) { return n(v, -256); }\n /**\n * Return a new ``int256`` type for %%v%%.\n */\n static int(v) { return n(v, -256); }\n /**\n * Return a new ``bytes1`` type for %%v%%.\n */\n static bytes1(v) { return b(v, 1); }\n /**\n * Return a new ``bytes2`` type for %%v%%.\n */\n static bytes2(v) { return b(v, 2); }\n /**\n * Return a new ``bytes3`` type for %%v%%.\n */\n static bytes3(v) { return b(v, 3); }\n /**\n * Return a new ``bytes4`` type for %%v%%.\n */\n static bytes4(v) { return b(v, 4); }\n /**\n * Return a new ``bytes5`` type for %%v%%.\n */\n static bytes5(v) { return b(v, 5); }\n /**\n * Return a new ``bytes6`` type for %%v%%.\n */\n static bytes6(v) { return b(v, 6); }\n /**\n * Return a new ``bytes7`` type for %%v%%.\n */\n static bytes7(v) { return b(v, 7); }\n /**\n * Return a new ``bytes8`` type for %%v%%.\n */\n static bytes8(v) { return b(v, 8); }\n /**\n * Return a new ``bytes9`` type for %%v%%.\n */\n static bytes9(v) { return b(v, 9); }\n /**\n * Return a new ``bytes10`` type for %%v%%.\n */\n static bytes10(v) { return b(v, 10); }\n /**\n * Return a new ``bytes11`` type for %%v%%.\n */\n static bytes11(v) { return b(v, 11); }\n /**\n * Return a new ``bytes12`` type for %%v%%.\n */\n static bytes12(v) { return b(v, 12); }\n /**\n * Return a new ``bytes13`` type for %%v%%.\n */\n static bytes13(v) { return b(v, 13); }\n /**\n * Return a new ``bytes14`` type for %%v%%.\n */\n static bytes14(v) { return b(v, 14); }\n /**\n * Return a new ``bytes15`` type for %%v%%.\n */\n static bytes15(v) { return b(v, 15); }\n /**\n * Return a new ``bytes16`` type for %%v%%.\n */\n static bytes16(v) { return b(v, 16); }\n /**\n * Return a new ``bytes17`` type for %%v%%.\n */\n static bytes17(v) { return b(v, 17); }\n /**\n * Return a new ``bytes18`` type for %%v%%.\n */\n static bytes18(v) { return b(v, 18); }\n /**\n * Return a new ``bytes19`` type for %%v%%.\n */\n static bytes19(v) { return b(v, 19); }\n /**\n * Return a new ``bytes20`` type for %%v%%.\n */\n static bytes20(v) { return b(v, 20); }\n /**\n * Return a new ``bytes21`` type for %%v%%.\n */\n static bytes21(v) { return b(v, 21); }\n /**\n * Return a new ``bytes22`` type for %%v%%.\n */\n static bytes22(v) { return b(v, 22); }\n /**\n * Return a new ``bytes23`` type for %%v%%.\n */\n static bytes23(v) { return b(v, 23); }\n /**\n * Return a new ``bytes24`` type for %%v%%.\n */\n static bytes24(v) { return b(v, 24); }\n /**\n * Return a new ``bytes25`` type for %%v%%.\n */\n static bytes25(v) { return b(v, 25); }\n /**\n * Return a new ``bytes26`` type for %%v%%.\n */\n static bytes26(v) { return b(v, 26); }\n /**\n * Return a new ``bytes27`` type for %%v%%.\n */\n static bytes27(v) { return b(v, 27); }\n /**\n * Return a new ``bytes28`` type for %%v%%.\n */\n static bytes28(v) { return b(v, 28); }\n /**\n * Return a new ``bytes29`` type for %%v%%.\n */\n static bytes29(v) { return b(v, 29); }\n /**\n * Return a new ``bytes30`` type for %%v%%.\n */\n static bytes30(v) { return b(v, 30); }\n /**\n * Return a new ``bytes31`` type for %%v%%.\n */\n static bytes31(v) { return b(v, 31); }\n /**\n * Return a new ``bytes32`` type for %%v%%.\n */\n static bytes32(v) { return b(v, 32); }\n /**\n * Return a new ``address`` type for %%v%%.\n */\n static address(v) { return new Typed(_gaurd, \"address\", v); }\n /**\n * Return a new ``bool`` type for %%v%%.\n */\n static bool(v) { return new Typed(_gaurd, \"bool\", !!v); }\n /**\n * Return a new ``bytes`` type for %%v%%.\n */\n static bytes(v) { return new Typed(_gaurd, \"bytes\", v); }\n /**\n * Return a new ``string`` type for %%v%%.\n */\n static string(v) { return new Typed(_gaurd, \"string\", v); }\n /**\n * Return a new ``array`` type for %%v%%, allowing %%dynamic%% length.\n */\n static array(v, dynamic) {\n throw new Error(\"not implemented yet\");\n return new Typed(_gaurd, \"array\", v, dynamic);\n }\n /**\n * Return a new ``tuple`` type for %%v%%, with the optional %%name%%.\n */\n static tuple(v, name) {\n throw new Error(\"not implemented yet\");\n return new Typed(_gaurd, \"tuple\", v, name);\n }\n /**\n * Return a new ``uint8`` type for %%v%%.\n */\n static overrides(v) {\n return new Typed(_gaurd, \"overrides\", Object.assign({}, v));\n }\n /**\n * Returns true only if %%value%% is a [[Typed]] instance.\n */\n static isTyped(value) {\n return (value\n && typeof (value) === \"object\"\n && \"_typedSymbol\" in value\n && value._typedSymbol === _typedSymbol);\n }\n /**\n * If the value is a [[Typed]] instance, validates the underlying value\n * and returns it, otherwise returns value directly.\n *\n * This is useful for functions that with to accept either a [[Typed]]\n * object or values.\n */\n static dereference(value, type) {\n if (Typed.isTyped(value)) {\n if (value.type !== type) {\n throw new Error(`invalid type: expecetd ${type}, got ${value.type}`);\n }\n return value.value;\n }\n return value;\n }\n}\n//# sourceMappingURL=typed.js.map","import { getAddress } from \"../../address/index.js\";\nimport { toBeHex } from \"../../utils/maths.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\n/**\n * @_ignore\n */\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, _value) {\n let value = Typed.dereference(_value, \"string\");\n try {\n value = getAddress(value);\n }\n catch (error) {\n return this._throwError(error.message, _value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(toBeHex(reader.readValue(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","import { Coder } from \"./abstract-coder.js\";\n/**\n * Clones the functionality of an existing Coder, but without a localName\n *\n * @_ignore\n */\nexport class AnonymousCoder extends Coder {\n coder;\n constructor(coder) {\n super(coder.name, coder.type, \"_\", coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","import { defineProperties, isError, assert, assertArgument, assertArgumentCount } from \"../../utils/index.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder, Result, WordSize, Writer } from \"./abstract-coder.js\";\nimport { AnonymousCoder } from \"./anonymous.js\";\n/**\n * @_ignore\n */\nexport function pack(writer, coders, values) {\n let arrayValues = [];\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n assert(name, \"cannot encode object for signature with missing names\", \"INVALID_ARGUMENT\", { argument: \"values\", info: { coder }, value: values });\n assert(!unique[name], \"cannot encode object for signature with duplicate names\", \"INVALID_ARGUMENT\", { argument: \"values\", info: { coder }, value: values });\n unique[name] = true;\n return values[name];\n });\n }\n else {\n assertArgument(false, \"invalid tuple value\", \"tuple\", values);\n }\n assertArgument(coders.length === arrayValues.length, \"types/value length mismatch\", \"tuple\", values);\n let staticWriter = new Writer();\n let dynamicWriter = new Writer();\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\n/**\n * @_ignore\n */\nexport function unpack(reader, coders) {\n let values = [];\n let keys = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readIndex();\n let offsetReader = baseReader.subReader(offset);\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (isError(error, \"BUFFER_OVERRUN\")) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (isError(error, \"BUFFER_OVERRUN\")) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value == undefined) {\n throw new Error(\"investigate\");\n }\n values.push(value);\n keys.push(coder.localName || null);\n });\n return Result.fromItems(values, keys);\n}\n/**\n * @_ignore\n */\nexport class ArrayCoder extends Coder {\n coder;\n length;\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n defineProperties(this, { coder, length });\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, _value) {\n const value = Typed.dereference(_value, \"array\");\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n assertArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readIndex();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n assert(count * WordSize <= reader.dataLength, \"insufficient data length\", \"BUFFER_OVERRUN\", { buffer: reader.bytes, offset: count * WordSize, length: reader.dataLength });\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return unpack(reader, coders);\n }\n}\n//# sourceMappingURL=array.js.map","import { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\n/**\n * @_ignore\n */\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, _value) {\n const value = Typed.dereference(_value, \"bool\");\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return !!reader.readValue();\n }\n}\n//# sourceMappingURL=boolean.js.map","import { getBytesCopy, hexlify } from \"../../utils/index.js\";\nimport { Coder } from \"./abstract-coder.js\";\n/**\n * @_ignore\n */\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = getBytesCopy(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readIndex(), true);\n }\n}\n/**\n * @_ignore\n */\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return hexlify(super.decode(reader));\n }\n}\n//# sourceMappingURL=bytes.js.map","import { defineProperties, getBytesCopy, hexlify } from \"../../utils/index.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\n/**\n * @_ignore\n */\nexport class FixedBytesCoder extends Coder {\n size;\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n defineProperties(this, { size }, { size: \"number\" });\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, _value) {\n let data = getBytesCopy(Typed.dereference(_value, this.type));\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", _value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return hexlify(reader.readBytes(this.size));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","import { Coder } from \"./abstract-coder.js\";\nconst Empty = new Uint8Array([]);\n/**\n * @_ignore\n */\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes(Empty);\n }\n decode(reader) {\n reader.readBytes(0);\n return null;\n }\n}\n//# sourceMappingURL=null.js.map","import { defineProperties, fromTwos, getBigInt, mask, toTwos } from \"../../utils/index.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder, WordSize } from \"./abstract-coder.js\";\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\nconst BN_MAX_UINT256 = BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n/**\n * @_ignore\n */\nexport class NumberCoder extends Coder {\n size;\n signed;\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n defineProperties(this, { size, signed }, { size: \"number\", signed: \"boolean\" });\n }\n defaultValue() {\n return 0;\n }\n encode(writer, _value) {\n let value = getBigInt(Typed.dereference(_value, this.type));\n // Check bounds are safe for encoding\n let maxUintValue = mask(BN_MAX_UINT256, WordSize * 8);\n if (this.signed) {\n let bounds = mask(maxUintValue, (this.size * 8) - 1);\n if (value > bounds || value < -(bounds + BN_1)) {\n this._throwError(\"value out-of-bounds\", _value);\n }\n value = toTwos(value, 8 * WordSize);\n }\n else if (value < BN_0 || value > mask(maxUintValue, this.size * 8)) {\n this._throwError(\"value out-of-bounds\", _value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n let value = mask(reader.readValue(), this.size * 8);\n if (this.signed) {\n value = fromTwos(value, this.size * 8);\n }\n return value;\n }\n}\n//# sourceMappingURL=number.js.map","import { toUtf8Bytes, toUtf8String } from \"../../utils/utf8.js\";\nimport { Typed } from \"../typed.js\";\nimport { DynamicBytesCoder } from \"./bytes.js\";\n/**\n * @_ignore\n */\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, _value) {\n return super.encode(writer, toUtf8Bytes(Typed.dereference(_value, \"string\")));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","import { defineProperties } from \"../../utils/properties.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\nimport { pack, unpack } from \"./array.js\";\n/**\n * @_ignore\n */\nexport class TupleCoder extends Coder {\n coders;\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n defineProperties(this, { coders: Object.freeze(coders.slice()) });\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, _value) {\n const value = Typed.dereference(_value, \"tuple\");\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return unpack(reader, this.coders);\n }\n}\n//# sourceMappingURL=tuple.js.map","import { keccak256 } from \"../crypto/index.js\";\nimport { toUtf8Bytes } from \"../utils/index.js\";\n/**\n * A simple hashing function which operates on UTF-8 strings to\n * compute an 32-byte identifier.\n *\n * This simply computes the [UTF-8 bytes](toUtf8Bytes) and computes\n * the [[keccak256]].\n *\n * @example:\n * id(\"hello world\")\n * //_result:\n */\nexport function id(value) {\n return keccak256(toUtf8Bytes(value));\n}\n//# sourceMappingURL=id.js.map","import { getAddress } from \"../address/index.js\";\nimport { assertArgument, isHexString } from \"../utils/index.js\";\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: storageKeys.map((storageKey, index) => {\n assertArgument(isHexString(storageKey, 32), \"invalid slot\", `storageKeys[${index}]`, storageKey);\n return storageKey.toLowerCase();\n })\n };\n}\n/**\n * Returns a [[AccessList]] from any ethers-supported access-list structure.\n */\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n assertArgument(set.length === 2, \"invalid slot set\", `value[${index}]`, set);\n return accessSetify(set[0], set[1]);\n }\n assertArgument(set != null && typeof (set) === \"object\", \"invalid address-slot set\", \"value\", value);\n return accessSetify(set.address, set.storageKeys);\n });\n }\n assertArgument(value != null && typeof (value) === \"object\", \"invalid access list\", \"value\", value);\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\n//# sourceMappingURL=accesslist.js.map","/**\n * A fragment is a single item from an ABI, which may represent any of:\n *\n * - [Functions](FunctionFragment)\n * - [Events](EventFragment)\n * - [Constructors](ConstructorFragment)\n * - Custom [Errors](ErrorFragment)\n * - [Fallback or Receive](FallbackFragment) functions\n *\n * @_subsection api/abi/abi-coder:Fragments [about-fragments]\n */\nimport { defineProperties, getBigInt, getNumber, assert, assertPrivate, assertArgument } from \"../utils/index.js\";\nimport { id } from \"../hash/index.js\";\n;\n// [ \"a\", \"b\" ] => { \"a\": 1, \"b\": 1 }\nfunction setify(items) {\n const result = new Set();\n items.forEach((k) => result.add(k));\n return Object.freeze(result);\n}\nconst _kwVisibDeploy = \"external public payable override\";\nconst KwVisibDeploy = setify(_kwVisibDeploy.split(\" \"));\n// Visibility Keywords\nconst _kwVisib = \"constant external internal payable private public pure view override\";\nconst KwVisib = setify(_kwVisib.split(\" \"));\nconst _kwTypes = \"constructor error event fallback function receive struct\";\nconst KwTypes = setify(_kwTypes.split(\" \"));\nconst _kwModifiers = \"calldata memory storage payable indexed\";\nconst KwModifiers = setify(_kwModifiers.split(\" \"));\nconst _kwOther = \"tuple returns\";\n// All Keywords\nconst _keywords = [_kwTypes, _kwModifiers, _kwOther, _kwVisib].join(\" \");\nconst Keywords = setify(_keywords.split(\" \"));\n// Single character tokens\nconst SimpleTokens = {\n \"(\": \"OPEN_PAREN\", \")\": \"CLOSE_PAREN\",\n \"[\": \"OPEN_BRACKET\", \"]\": \"CLOSE_BRACKET\",\n \",\": \"COMMA\", \"@\": \"AT\"\n};\n// Parser regexes to consume the next token\nconst regexWhitespacePrefix = new RegExp(\"^(\\\\s*)\");\nconst regexNumberPrefix = new RegExp(\"^([0-9]+)\");\nconst regexIdPrefix = new RegExp(\"^([a-zA-Z$_][a-zA-Z0-9$_]*)\");\n// Parser regexs to check validity\nconst regexId = new RegExp(\"^([a-zA-Z$_][a-zA-Z0-9$_]*)$\");\nconst regexType = new RegExp(\"^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$\");\nclass TokenString {\n #offset;\n #tokens;\n get offset() { return this.#offset; }\n get length() { return this.#tokens.length - this.#offset; }\n constructor(tokens) {\n this.#offset = 0;\n this.#tokens = tokens.slice();\n }\n clone() { return new TokenString(this.#tokens); }\n reset() { this.#offset = 0; }\n #subTokenString(from = 0, to = 0) {\n return new TokenString(this.#tokens.slice(from, to).map((t) => {\n return Object.freeze(Object.assign({}, t, {\n match: (t.match - from),\n linkBack: (t.linkBack - from),\n linkNext: (t.linkNext - from),\n }));\n }));\n }\n // Pops and returns the value of the next token, if it is a keyword in allowed; throws if out of tokens\n popKeyword(allowed) {\n const top = this.peek();\n if (top.type !== \"KEYWORD\" || !allowed.has(top.text)) {\n throw new Error(`expected keyword ${top.text}`);\n }\n return this.pop().text;\n }\n // Pops and returns the value of the next token if it is `type`; throws if out of tokens\n popType(type) {\n if (this.peek().type !== type) {\n const top = this.peek();\n throw new Error(`expected ${type}; got ${top.type} ${JSON.stringify(top.text)}`);\n }\n return this.pop().text;\n }\n // Pops and returns a \"(\" TOKENS \")\"\n popParen() {\n const top = this.peek();\n if (top.type !== \"OPEN_PAREN\") {\n throw new Error(\"bad start\");\n }\n const result = this.#subTokenString(this.#offset + 1, top.match + 1);\n this.#offset = top.match + 1;\n return result;\n }\n // Pops and returns the items within \"(\" ITEM1 \",\" ITEM2 \",\" ... \")\"\n popParams() {\n const top = this.peek();\n if (top.type !== \"OPEN_PAREN\") {\n throw new Error(\"bad start\");\n }\n const result = [];\n while (this.#offset < top.match - 1) {\n const link = this.peek().linkNext;\n result.push(this.#subTokenString(this.#offset + 1, link));\n this.#offset = link;\n }\n this.#offset = top.match + 1;\n return result;\n }\n // Returns the top Token, throwing if out of tokens\n peek() {\n if (this.#offset >= this.#tokens.length) {\n throw new Error(\"out-of-bounds\");\n }\n return this.#tokens[this.#offset];\n }\n // Returns the next value, if it is a keyword in `allowed`\n peekKeyword(allowed) {\n const top = this.peekType(\"KEYWORD\");\n return (top != null && allowed.has(top)) ? top : null;\n }\n // Returns the value of the next token if it is `type`\n peekType(type) {\n if (this.length === 0) {\n return null;\n }\n const top = this.peek();\n return (top.type === type) ? top.text : null;\n }\n // Returns the next token; throws if out of tokens\n pop() {\n const result = this.peek();\n this.#offset++;\n return result;\n }\n toString() {\n const tokens = [];\n for (let i = this.#offset; i < this.#tokens.length; i++) {\n const token = this.#tokens[i];\n tokens.push(`${token.type}:${token.text}`);\n }\n return `<TokenString ${tokens.join(\" \")}>`;\n }\n}\nfunction lex(text) {\n const tokens = [];\n const throwError = (message) => {\n const token = (offset < text.length) ? JSON.stringify(text[offset]) : \"$EOI\";\n throw new Error(`invalid token ${token} at ${offset}: ${message}`);\n };\n let brackets = [];\n let commas = [];\n let offset = 0;\n while (offset < text.length) {\n // Strip off any leading whitespace\n let cur = text.substring(offset);\n let match = cur.match(regexWhitespacePrefix);\n if (match) {\n offset += match[1].length;\n cur = text.substring(offset);\n }\n const token = { depth: brackets.length, linkBack: -1, linkNext: -1, match: -1, type: \"\", text: \"\", offset, value: -1 };\n tokens.push(token);\n let type = (SimpleTokens[cur[0]] || \"\");\n if (type) {\n token.type = type;\n token.text = cur[0];\n offset++;\n if (type === \"OPEN_PAREN\") {\n brackets.push(tokens.length - 1);\n commas.push(tokens.length - 1);\n }\n else if (type == \"CLOSE_PAREN\") {\n if (brackets.length === 0) {\n throwError(\"no matching open bracket\");\n }\n token.match = brackets.pop();\n (tokens[token.match]).match = tokens.length - 1;\n token.depth--;\n token.linkBack = commas.pop();\n (tokens[token.linkBack]).linkNext = tokens.length - 1;\n }\n else if (type === \"COMMA\") {\n token.linkBack = commas.pop();\n (tokens[token.linkBack]).linkNext = tokens.length - 1;\n commas.push(tokens.length - 1);\n }\n else if (type === \"OPEN_BRACKET\") {\n token.type = \"BRACKET\";\n }\n else if (type === \"CLOSE_BRACKET\") {\n // Remove the CLOSE_BRACKET\n let suffix = tokens.pop().text;\n if (tokens.length > 0 && tokens[tokens.length - 1].type === \"NUMBER\") {\n const value = tokens.pop().text;\n suffix = value + suffix;\n (tokens[tokens.length - 1]).value = getNumber(value);\n }\n if (tokens.length === 0 || tokens[tokens.length - 1].type !== \"BRACKET\") {\n throw new Error(\"missing opening bracket\");\n }\n (tokens[tokens.length - 1]).text += suffix;\n }\n continue;\n }\n match = cur.match(regexIdPrefix);\n if (match) {\n token.text = match[1];\n offset += token.text.length;\n if (Keywords.has(token.text)) {\n token.type = \"KEYWORD\";\n continue;\n }\n if (token.text.match(regexType)) {\n token.type = \"TYPE\";\n continue;\n }\n token.type = \"ID\";\n continue;\n }\n match = cur.match(regexNumberPrefix);\n if (match) {\n token.text = match[1];\n token.type = \"NUMBER\";\n offset += token.text.length;\n continue;\n }\n throw new Error(`unexpected token ${JSON.stringify(cur[0])} at position ${offset}`);\n }\n return new TokenString(tokens.map((t) => Object.freeze(t)));\n}\n// Check only one of `allowed` is in `set`\nfunction allowSingle(set, allowed) {\n let included = [];\n for (const key in allowed.keys()) {\n if (set.has(key)) {\n included.push(key);\n }\n }\n if (included.length > 1) {\n throw new Error(`conflicting types: ${included.join(\", \")}`);\n }\n}\n// Functions to process a Solidity Signature TokenString from left-to-right for...\n// ...the name with an optional type, returning the name\nfunction consumeName(type, tokens) {\n if (tokens.peekKeyword(KwTypes)) {\n const keyword = tokens.pop().text;\n if (keyword !== type) {\n throw new Error(`expected ${type}, got ${keyword}`);\n }\n }\n return tokens.popType(\"ID\");\n}\n// ...all keywords matching allowed, returning the keywords\nfunction consumeKeywords(tokens, allowed) {\n const keywords = new Set();\n while (true) {\n const keyword = tokens.peekType(\"KEYWORD\");\n if (keyword == null || (allowed && !allowed.has(keyword))) {\n break;\n }\n tokens.pop();\n if (keywords.has(keyword)) {\n throw new Error(`duplicate keywords: ${JSON.stringify(keyword)}`);\n }\n keywords.add(keyword);\n }\n return Object.freeze(keywords);\n}\n// ...all visibility keywords, returning the coalesced mutability\nfunction consumeMutability(tokens) {\n let modifiers = consumeKeywords(tokens, KwVisib);\n // Detect conflicting modifiers\n allowSingle(modifiers, setify(\"constant payable nonpayable\".split(\" \")));\n allowSingle(modifiers, setify(\"pure view payable nonpayable\".split(\" \")));\n // Process mutability states\n if (modifiers.has(\"view\")) {\n return \"view\";\n }\n if (modifiers.has(\"pure\")) {\n return \"pure\";\n }\n if (modifiers.has(\"payable\")) {\n return \"payable\";\n }\n if (modifiers.has(\"nonpayable\")) {\n return \"nonpayable\";\n }\n // Process legacy `constant` last\n if (modifiers.has(\"constant\")) {\n return \"view\";\n }\n return \"nonpayable\";\n}\n// ...a parameter list, returning the ParamType list\nfunction consumeParams(tokens, allowIndexed) {\n return tokens.popParams().map((t) => ParamType.from(t, allowIndexed));\n}\n// ...a gas limit, returning a BigNumber or null if none\nfunction consumeGas(tokens) {\n if (tokens.peekType(\"AT\")) {\n tokens.pop();\n if (tokens.peekType(\"NUMBER\")) {\n return getBigInt(tokens.pop().text);\n }\n throw new Error(\"invalid gas\");\n }\n return null;\n}\nfunction consumeEoi(tokens) {\n if (tokens.length) {\n throw new Error(`unexpected tokens at offset ${tokens.offset}: ${tokens.toString()}`);\n }\n}\nconst regexArrayType = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nfunction verifyBasicType(type) {\n const match = type.match(regexType);\n assertArgument(match, \"invalid type\", \"type\", type);\n if (type === \"uint\") {\n return \"uint256\";\n }\n if (type === \"int\") {\n return \"int256\";\n }\n if (match[2]) {\n // bytesXX\n const length = parseInt(match[2]);\n assertArgument(length !== 0 && length <= 32, \"invalid bytes length\", \"type\", type);\n }\n else if (match[3]) {\n // intXX or uintXX\n const size = parseInt(match[3]);\n assertArgument(size !== 0 && size <= 256 && (size % 8) === 0, \"invalid numeric width\", \"type\", type);\n }\n return type;\n}\n// Make the Fragment constructors effectively private\nconst _guard = {};\nconst internal = Symbol.for(\"_ethers_internal\");\nconst ParamTypeInternal = \"_ParamTypeInternal\";\nconst ErrorFragmentInternal = \"_ErrorInternal\";\nconst EventFragmentInternal = \"_EventInternal\";\nconst ConstructorFragmentInternal = \"_ConstructorInternal\";\nconst FallbackFragmentInternal = \"_FallbackInternal\";\nconst FunctionFragmentInternal = \"_FunctionInternal\";\nconst StructFragmentInternal = \"_StructInternal\";\n/**\n * Each input and output of a [[Fragment]] is an Array of **ParamType**.\n */\nexport class ParamType {\n /**\n * The local name of the parameter (or ``\"\"`` if unbound)\n */\n name;\n /**\n * The fully qualified type (e.g. ``\"address\"``, ``\"tuple(address)\"``,\n * ``\"uint256[3][]\"``)\n */\n type;\n /**\n * The base type (e.g. ``\"address\"``, ``\"tuple\"``, ``\"array\"``)\n */\n baseType;\n /**\n * True if the parameters is indexed.\n *\n * For non-indexable types this is ``null``.\n */\n indexed;\n /**\n * The components for the tuple.\n *\n * For non-tuple types this is ``null``.\n */\n components;\n /**\n * The array length, or ``-1`` for dynamic-lengthed arrays.\n *\n * For non-array types this is ``null``.\n */\n arrayLength;\n /**\n * The type of each child in the array.\n *\n * For non-array types this is ``null``.\n */\n arrayChildren;\n /**\n * @private\n */\n constructor(guard, name, type, baseType, indexed, components, arrayLength, arrayChildren) {\n assertPrivate(guard, _guard, \"ParamType\");\n Object.defineProperty(this, internal, { value: ParamTypeInternal });\n if (components) {\n components = Object.freeze(components.slice());\n }\n if (baseType === \"array\") {\n if (arrayLength == null || arrayChildren == null) {\n throw new Error(\"\");\n }\n }\n else if (arrayLength != null || arrayChildren != null) {\n throw new Error(\"\");\n }\n if (baseType === \"tuple\") {\n if (components == null) {\n throw new Error(\"\");\n }\n }\n else if (components != null) {\n throw new Error(\"\");\n }\n defineProperties(this, {\n name, type, baseType, indexed, components, arrayLength, arrayChildren\n });\n }\n /**\n * Return a string representation of this type.\n *\n * For example,\n *\n * ``sighash\" => \"(uint256,address)\"``\n *\n * ``\"minimal\" => \"tuple(uint256,address) indexed\"``\n *\n * ``\"full\" => \"tuple(uint256 foo, address bar) indexed baz\"``\n */\n format(format) {\n if (format == null) {\n format = \"sighash\";\n }\n if (format === \"json\") {\n const name = this.name || \"\";\n if (this.isArray()) {\n const result = JSON.parse(this.arrayChildren.format(\"json\"));\n result.name = name;\n result.type += `[${(this.arrayLength < 0 ? \"\" : String(this.arrayLength))}]`;\n return JSON.stringify(result);\n }\n const result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.isTuple()) {\n result.components = this.components.map((c) => JSON.parse(c.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.isArray()) {\n result += this.arrayChildren.format(format);\n result += `[${(this.arrayLength < 0 ? \"\" : String(this.arrayLength))}]`;\n }\n else {\n if (this.isTuple()) {\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === \"full\") ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== \"sighash\") {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === \"full\" && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n /**\n * Returns true if %%this%% is an Array type.\n *\n * This provides a type gaurd ensuring that [[arrayChildren]]\n * and [[arrayLength]] are non-null.\n */\n isArray() {\n return (this.baseType === \"array\");\n }\n /**\n * Returns true if %%this%% is a Tuple type.\n *\n * This provides a type gaurd ensuring that [[components]]\n * is non-null.\n */\n isTuple() {\n return (this.baseType === \"tuple\");\n }\n /**\n * Returns true if %%this%% is an Indexable type.\n *\n * This provides a type gaurd ensuring that [[indexed]]\n * is non-null.\n */\n isIndexable() {\n return (this.indexed != null);\n }\n /**\n * Walks the **ParamType** with %%value%%, calling %%process%%\n * on each type, destructing the %%value%% recursively.\n */\n walk(value, process) {\n if (this.isArray()) {\n if (!Array.isArray(value)) {\n throw new Error(\"invalid array value\");\n }\n if (this.arrayLength !== -1 && value.length !== this.arrayLength) {\n throw new Error(\"array is wrong length\");\n }\n const _this = this;\n return value.map((v) => (_this.arrayChildren.walk(v, process)));\n }\n if (this.isTuple()) {\n if (!Array.isArray(value)) {\n throw new Error(\"invalid tuple value\");\n }\n if (value.length !== this.components.length) {\n throw new Error(\"array is wrong length\");\n }\n const _this = this;\n return value.map((v, i) => (_this.components[i].walk(v, process)));\n }\n return process(this.type, value);\n }\n #walkAsync(promises, value, process, setValue) {\n if (this.isArray()) {\n if (!Array.isArray(value)) {\n throw new Error(\"invalid array value\");\n }\n if (this.arrayLength !== -1 && value.length !== this.arrayLength) {\n throw new Error(\"array is wrong length\");\n }\n const childType = this.arrayChildren;\n const result = value.slice();\n result.forEach((value, index) => {\n childType.#walkAsync(promises, value, process, (value) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n if (this.isTuple()) {\n const components = this.components;\n // Convert the object into an array\n let result;\n if (Array.isArray(value)) {\n result = value.slice();\n }\n else {\n if (value == null || typeof (value) !== \"object\") {\n throw new Error(\"invalid tuple value\");\n }\n result = components.map((param) => {\n if (!param.name) {\n throw new Error(\"cannot use object value with unnamed components\");\n }\n if (!(param.name in value)) {\n throw new Error(`missing value for component ${param.name}`);\n }\n return value[param.name];\n });\n }\n if (result.length !== this.components.length) {\n throw new Error(\"array is wrong length\");\n }\n result.forEach((value, index) => {\n components[index].#walkAsync(promises, value, process, (value) => {\n result[index] = value;\n });\n });\n setValue(result);\n return;\n }\n const result = process(this.type, value);\n if (result.then) {\n promises.push((async function () { setValue(await result); })());\n }\n else {\n setValue(result);\n }\n }\n /**\n * Walks the **ParamType** with %%value%%, asynchronously calling\n * %%process%% on each type, destructing the %%value%% recursively.\n *\n * This can be used to resolve ENS naes by walking and resolving each\n * ``\"address\"`` type.\n */\n async walkAsync(value, process) {\n const promises = [];\n const result = [value];\n this.#walkAsync(promises, value, process, (value) => {\n result[0] = value;\n });\n if (promises.length) {\n await Promise.all(promises);\n }\n return result[0];\n }\n /**\n * Creates a new **ParamType** for %%obj%%.\n *\n * If %%allowIndexed%% then the ``indexed`` keyword is permitted,\n * otherwise the ``indexed`` keyword will throw an error.\n */\n static from(obj, allowIndexed) {\n if (ParamType.isParamType(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n try {\n return ParamType.from(lex(obj), allowIndexed);\n }\n catch (error) {\n assertArgument(false, \"invalid param type\", \"obj\", obj);\n }\n }\n else if (obj instanceof TokenString) {\n let type = \"\", baseType = \"\";\n let comps = null;\n if (consumeKeywords(obj, setify([\"tuple\"])).has(\"tuple\") || obj.peekType(\"OPEN_PAREN\")) {\n // Tuple\n baseType = \"tuple\";\n comps = obj.popParams().map((t) => ParamType.from(t));\n type = `tuple(${comps.map((c) => c.format()).join(\",\")})`;\n }\n else {\n // Normal\n type = verifyBasicType(obj.popType(\"TYPE\"));\n baseType = type;\n }\n // Check for Array\n let arrayChildren = null;\n let arrayLength = null;\n while (obj.length && obj.peekType(\"BRACKET\")) {\n const bracket = obj.pop(); //arrays[i];\n arrayChildren = new ParamType(_guard, \"\", type, baseType, null, comps, arrayLength, arrayChildren);\n arrayLength = bracket.value;\n type += bracket.text;\n baseType = \"array\";\n comps = null;\n }\n let indexed = null;\n const keywords = consumeKeywords(obj, KwModifiers);\n if (keywords.has(\"indexed\")) {\n if (!allowIndexed) {\n throw new Error(\"\");\n }\n indexed = true;\n }\n const name = (obj.peekType(\"ID\") ? obj.pop().text : \"\");\n if (obj.length) {\n throw new Error(\"leftover tokens\");\n }\n return new ParamType(_guard, name, type, baseType, indexed, comps, arrayLength, arrayChildren);\n }\n const name = obj.name;\n assertArgument(!name || (typeof (name) === \"string\" && name.match(regexId)), \"invalid name\", \"obj.name\", name);\n let indexed = obj.indexed;\n if (indexed != null) {\n assertArgument(allowIndexed, \"parameter cannot be indexed\", \"obj.indexed\", obj.indexed);\n indexed = !!indexed;\n }\n let type = obj.type;\n let arrayMatch = type.match(regexArrayType);\n if (arrayMatch) {\n const arrayLength = parseInt(arrayMatch[2] || \"-1\");\n const arrayChildren = ParamType.from({\n type: arrayMatch[1],\n components: obj.components\n });\n return new ParamType(_guard, name || \"\", type, \"array\", indexed, null, arrayLength, arrayChildren);\n }\n if (type === \"tuple\" || type.startsWith(\"tuple(\" /* fix: ) */) || type.startsWith(\"(\" /* fix: ) */)) {\n const comps = (obj.components != null) ? obj.components.map((c) => ParamType.from(c)) : null;\n const tuple = new ParamType(_guard, name || \"\", type, \"tuple\", indexed, comps, null, null);\n // @TODO: use lexer to validate and normalize type\n return tuple;\n }\n type = verifyBasicType(obj.type);\n return new ParamType(_guard, name || \"\", type, type, indexed, null, null, null);\n }\n /**\n * Returns true if %%value%% is a **ParamType**.\n */\n static isParamType(value) {\n return (value && value[internal] === ParamTypeInternal);\n }\n}\n/**\n * An abstract class to represent An individual fragment from a parse ABI.\n */\nexport class Fragment {\n /**\n * The type of the fragment.\n */\n type;\n /**\n * The inputs for the fragment.\n */\n inputs;\n /**\n * @private\n */\n constructor(guard, type, inputs) {\n assertPrivate(guard, _guard, \"Fragment\");\n inputs = Object.freeze(inputs.slice());\n defineProperties(this, { type, inputs });\n }\n /**\n * Creates a new **Fragment** for %%obj%%, wich can be any supported\n * ABI frgament type.\n */\n static from(obj) {\n if (typeof (obj) === \"string\") {\n // Try parsing JSON...\n try {\n Fragment.from(JSON.parse(obj));\n }\n catch (e) { }\n // ...otherwise, use the human-readable lexer\n return Fragment.from(lex(obj));\n }\n if (obj instanceof TokenString) {\n // Human-readable ABI (already lexed)\n const type = obj.peekKeyword(KwTypes);\n switch (type) {\n case \"constructor\": return ConstructorFragment.from(obj);\n case \"error\": return ErrorFragment.from(obj);\n case \"event\": return EventFragment.from(obj);\n case \"fallback\":\n case \"receive\":\n return FallbackFragment.from(obj);\n case \"function\": return FunctionFragment.from(obj);\n case \"struct\": return StructFragment.from(obj);\n }\n }\n else if (typeof (obj) === \"object\") {\n // JSON ABI\n switch (obj.type) {\n case \"constructor\": return ConstructorFragment.from(obj);\n case \"error\": return ErrorFragment.from(obj);\n case \"event\": return EventFragment.from(obj);\n case \"fallback\":\n case \"receive\":\n return FallbackFragment.from(obj);\n case \"function\": return FunctionFragment.from(obj);\n case \"struct\": return StructFragment.from(obj);\n }\n assert(false, `unsupported type: ${obj.type}`, \"UNSUPPORTED_OPERATION\", {\n operation: \"Fragment.from\"\n });\n }\n assertArgument(false, \"unsupported frgament object\", \"obj\", obj);\n }\n /**\n * Returns true if %%value%% is a [[ConstructorFragment]].\n */\n static isConstructor(value) {\n return ConstructorFragment.isFragment(value);\n }\n /**\n * Returns true if %%value%% is an [[ErrorFragment]].\n */\n static isError(value) {\n return ErrorFragment.isFragment(value);\n }\n /**\n * Returns true if %%value%% is an [[EventFragment]].\n */\n static isEvent(value) {\n return EventFragment.isFragment(value);\n }\n /**\n * Returns true if %%value%% is a [[FunctionFragment]].\n */\n static isFunction(value) {\n return FunctionFragment.isFragment(value);\n }\n /**\n * Returns true if %%value%% is a [[StructFragment]].\n */\n static isStruct(value) {\n return StructFragment.isFragment(value);\n }\n}\n/**\n * An abstract class to represent An individual fragment\n * which has a name from a parse ABI.\n */\nexport class NamedFragment extends Fragment {\n /**\n * The name of the fragment.\n */\n name;\n /**\n * @private\n */\n constructor(guard, type, name, inputs) {\n super(guard, type, inputs);\n assertArgument(typeof (name) === \"string\" && name.match(regexId), \"invalid identifier\", \"name\", name);\n inputs = Object.freeze(inputs.slice());\n defineProperties(this, { name });\n }\n}\nfunction joinParams(format, params) {\n return \"(\" + params.map((p) => p.format(format)).join((format === \"full\") ? \", \" : \",\") + \")\";\n}\n/**\n * A Fragment which represents a //Custom Error//.\n */\nexport class ErrorFragment extends NamedFragment {\n /**\n * @private\n */\n constructor(guard, name, inputs) {\n super(guard, \"error\", name, inputs);\n Object.defineProperty(this, internal, { value: ErrorFragmentInternal });\n }\n /**\n * The Custom Error selector.\n */\n get selector() {\n return id(this.format(\"sighash\")).substring(0, 10);\n }\n /**\n * Returns a string representation of this fragment as %%format%%.\n */\n format(format) {\n if (format == null) {\n format = \"sighash\";\n }\n if (format === \"json\") {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n const result = [];\n if (format !== \"sighash\") {\n result.push(\"error\");\n }\n result.push(this.name + joinParams(format, this.inputs));\n return result.join(\" \");\n }\n /**\n * Returns a new **ErrorFragment** for %%obj%%.\n */\n static from(obj) {\n if (ErrorFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n return ErrorFragment.from(lex(obj));\n }\n else if (obj instanceof TokenString) {\n const name = consumeName(\"error\", obj);\n const inputs = consumeParams(obj);\n consumeEoi(obj);\n return new ErrorFragment(_guard, name, inputs);\n }\n return new ErrorFragment(_guard, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []);\n }\n /**\n * Returns ``true`` and provides a type guard if %%value%% is an\n * **ErrorFragment**.\n */\n static isFragment(value) {\n return (value && value[internal] === ErrorFragmentInternal);\n }\n}\n/**\n * A Fragment which represents an Event.\n */\nexport class EventFragment extends NamedFragment {\n /**\n * Whether this event is anonymous.\n */\n anonymous;\n /**\n * @private\n */\n constructor(guard, name, inputs, anonymous) {\n super(guard, \"event\", name, inputs);\n Object.defineProperty(this, internal, { value: EventFragmentInternal });\n defineProperties(this, { anonymous });\n }\n /**\n * The Event topic hash.\n */\n get topicHash() {\n return id(this.format(\"sighash\"));\n }\n /**\n * Returns a string representation of this event as %%format%%.\n */\n format(format) {\n if (format == null) {\n format = \"sighash\";\n }\n if (format === \"json\") {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((i) => JSON.parse(i.format(format)))\n });\n }\n const result = [];\n if (format !== \"sighash\") {\n result.push(\"event\");\n }\n result.push(this.name + joinParams(format, this.inputs));\n if (format !== \"sighash\" && this.anonymous) {\n result.push(\"anonymous\");\n }\n return result.join(\" \");\n }\n /**\n * Return the topic hash for an event with %%name%% and %%params%%.\n */\n static getTopicHash(name, params) {\n params = (params || []).map((p) => ParamType.from(p));\n const fragment = new EventFragment(_guard, name, params, false);\n return fragment.topicHash;\n }\n /**\n * Returns a new **EventFragment** for %%obj%%.\n */\n static from(obj) {\n if (EventFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n try {\n return EventFragment.from(lex(obj));\n }\n catch (error) {\n assertArgument(false, \"invalid event fragment\", \"obj\", obj);\n }\n }\n else if (obj instanceof TokenString) {\n const name = consumeName(\"event\", obj);\n const inputs = consumeParams(obj, true);\n const anonymous = !!consumeKeywords(obj, setify([\"anonymous\"])).has(\"anonymous\");\n consumeEoi(obj);\n return new EventFragment(_guard, name, inputs, anonymous);\n }\n return new EventFragment(_guard, obj.name, obj.inputs ? obj.inputs.map((p) => ParamType.from(p, true)) : [], !!obj.anonymous);\n }\n /**\n * Returns ``true`` and provides a type guard if %%value%% is an\n * **EventFragment**.\n */\n static isFragment(value) {\n return (value && value[internal] === EventFragmentInternal);\n }\n}\n/**\n * A Fragment which represents a constructor.\n */\nexport class ConstructorFragment extends Fragment {\n /**\n * Whether the constructor can receive an endowment.\n */\n payable;\n /**\n * The recommended gas limit for deployment or ``null``.\n */\n gas;\n /**\n * @private\n */\n constructor(guard, type, inputs, payable, gas) {\n super(guard, type, inputs);\n Object.defineProperty(this, internal, { value: ConstructorFragmentInternal });\n defineProperties(this, { payable, gas });\n }\n /**\n * Returns a string representation of this constructor as %%format%%.\n */\n format(format) {\n assert(format != null && format !== \"sighash\", \"cannot format a constructor for sighash\", \"UNSUPPORTED_OPERATION\", { operation: \"format(sighash)\" });\n if (format === \"json\") {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: (this.payable ? \"payable\" : \"undefined\"),\n payable: this.payable,\n gas: ((this.gas != null) ? this.gas : undefined),\n inputs: this.inputs.map((i) => JSON.parse(i.format(format)))\n });\n }\n const result = [`constructor${joinParams(format, this.inputs)}`];\n if (this.payable) {\n result.push(\"payable\");\n }\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n return result.join(\" \");\n }\n /**\n * Returns a new **ConstructorFragment** for %%obj%%.\n */\n static from(obj) {\n if (ConstructorFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n try {\n return ConstructorFragment.from(lex(obj));\n }\n catch (error) {\n assertArgument(false, \"invalid constuctor fragment\", \"obj\", obj);\n }\n }\n else if (obj instanceof TokenString) {\n consumeKeywords(obj, setify([\"constructor\"]));\n const inputs = consumeParams(obj);\n const payable = !!consumeKeywords(obj, KwVisibDeploy).has(\"payable\");\n const gas = consumeGas(obj);\n consumeEoi(obj);\n return new ConstructorFragment(_guard, \"constructor\", inputs, payable, gas);\n }\n return new ConstructorFragment(_guard, \"constructor\", obj.inputs ? obj.inputs.map(ParamType.from) : [], !!obj.payable, (obj.gas != null) ? obj.gas : null);\n }\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **ConstructorFragment**.\n */\n static isFragment(value) {\n return (value && value[internal] === ConstructorFragmentInternal);\n }\n}\n/**\n * A Fragment which represents a method.\n */\nexport class FallbackFragment extends Fragment {\n /**\n * If the function can be sent value during invocation.\n */\n payable;\n constructor(guard, inputs, payable) {\n super(guard, \"fallback\", inputs);\n Object.defineProperty(this, internal, { value: FallbackFragmentInternal });\n defineProperties(this, { payable });\n }\n /**\n * Returns a string representation of this fallback as %%format%%.\n */\n format(format) {\n const type = ((this.inputs.length === 0) ? \"receive\" : \"fallback\");\n if (format === \"json\") {\n const stateMutability = (this.payable ? \"payable\" : \"nonpayable\");\n return JSON.stringify({ type, stateMutability });\n }\n return `${type}()${this.payable ? \" payable\" : \"\"}`;\n }\n /**\n * Returns a new **FallbackFragment** for %%obj%%.\n */\n static from(obj) {\n if (FallbackFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n try {\n return FallbackFragment.from(lex(obj));\n }\n catch (error) {\n assertArgument(false, \"invalid fallback fragment\", \"obj\", obj);\n }\n }\n else if (obj instanceof TokenString) {\n const errorObj = obj.toString();\n const topIsValid = obj.peekKeyword(setify([\"fallback\", \"receive\"]));\n assertArgument(topIsValid, \"type must be fallback or receive\", \"obj\", errorObj);\n const type = obj.popKeyword(setify([\"fallback\", \"receive\"]));\n // receive()\n if (type === \"receive\") {\n const inputs = consumeParams(obj);\n assertArgument(inputs.length === 0, `receive cannot have arguments`, \"obj.inputs\", inputs);\n consumeKeywords(obj, setify([\"payable\"]));\n consumeEoi(obj);\n return new FallbackFragment(_guard, [], true);\n }\n // fallback() [payable]\n // fallback(bytes) [payable] returns (bytes)\n let inputs = consumeParams(obj);\n if (inputs.length) {\n assertArgument(inputs.length === 1 && inputs[0].type === \"bytes\", \"invalid fallback inputs\", \"obj.inputs\", inputs.map((i) => i.format(\"minimal\")).join(\", \"));\n }\n else {\n inputs = [ParamType.from(\"bytes\")];\n }\n const mutability = consumeMutability(obj);\n assertArgument(mutability === \"nonpayable\" || mutability === \"payable\", \"fallback cannot be constants\", \"obj.stateMutability\", mutability);\n if (consumeKeywords(obj, setify([\"returns\"])).has(\"returns\")) {\n const outputs = consumeParams(obj);\n assertArgument(outputs.length === 1 && outputs[0].type === \"bytes\", \"invalid fallback outputs\", \"obj.outputs\", outputs.map((i) => i.format(\"minimal\")).join(\", \"));\n }\n consumeEoi(obj);\n return new FallbackFragment(_guard, inputs, mutability === \"payable\");\n }\n if (obj.type === \"receive\") {\n return new FallbackFragment(_guard, [], true);\n }\n if (obj.type === \"fallback\") {\n const inputs = [ParamType.from(\"bytes\")];\n const payable = (obj.stateMutability === \"payable\");\n return new FallbackFragment(_guard, inputs, payable);\n }\n assertArgument(false, \"invalid fallback description\", \"obj\", obj);\n }\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **FallbackFragment**.\n */\n static isFragment(value) {\n return (value && value[internal] === FallbackFragmentInternal);\n }\n}\n/**\n * A Fragment which represents a method.\n */\nexport class FunctionFragment extends NamedFragment {\n /**\n * If the function is constant (e.g. ``pure`` or ``view`` functions).\n */\n constant;\n /**\n * The returned types for the result of calling this function.\n */\n outputs;\n /**\n * The state mutability (e.g. ``payable``, ``nonpayable``, ``view``\n * or ``pure``)\n */\n stateMutability;\n /**\n * If the function can be sent value during invocation.\n */\n payable;\n /**\n * The recommended gas limit to send when calling this function.\n */\n gas;\n /**\n * @private\n */\n constructor(guard, name, stateMutability, inputs, outputs, gas) {\n super(guard, \"function\", name, inputs);\n Object.defineProperty(this, internal, { value: FunctionFragmentInternal });\n outputs = Object.freeze(outputs.slice());\n const constant = (stateMutability === \"view\" || stateMutability === \"pure\");\n const payable = (stateMutability === \"payable\");\n defineProperties(this, { constant, gas, outputs, payable, stateMutability });\n }\n /**\n * The Function selector.\n */\n get selector() {\n return id(this.format(\"sighash\")).substring(0, 10);\n }\n /**\n * Returns a string representation of this function as %%format%%.\n */\n format(format) {\n if (format == null) {\n format = \"sighash\";\n }\n if (format === \"json\") {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: ((this.gas != null) ? this.gas : undefined),\n inputs: this.inputs.map((i) => JSON.parse(i.format(format))),\n outputs: this.outputs.map((o) => JSON.parse(o.format(format))),\n });\n }\n const result = [];\n if (format !== \"sighash\") {\n result.push(\"function\");\n }\n result.push(this.name + joinParams(format, this.inputs));\n if (format !== \"sighash\") {\n if (this.stateMutability !== \"nonpayable\") {\n result.push(this.stateMutability);\n }\n if (this.outputs && this.outputs.length) {\n result.push(\"returns\");\n result.push(joinParams(format, this.outputs));\n }\n if (this.gas != null) {\n result.push(`@${this.gas.toString()}`);\n }\n }\n return result.join(\" \");\n }\n /**\n * Return the selector for a function with %%name%% and %%params%%.\n */\n static getSelector(name, params) {\n params = (params || []).map((p) => ParamType.from(p));\n const fragment = new FunctionFragment(_guard, name, \"view\", params, [], null);\n return fragment.selector;\n }\n /**\n * Returns a new **FunctionFragment** for %%obj%%.\n */\n static from(obj) {\n if (FunctionFragment.isFragment(obj)) {\n return obj;\n }\n if (typeof (obj) === \"string\") {\n try {\n return FunctionFragment.from(lex(obj));\n }\n catch (error) {\n assertArgument(false, \"invalid function fragment\", \"obj\", obj);\n }\n }\n else if (obj instanceof TokenString) {\n const name = consumeName(\"function\", obj);\n const inputs = consumeParams(obj);\n const mutability = consumeMutability(obj);\n let outputs = [];\n if (consumeKeywords(obj, setify([\"returns\"])).has(\"returns\")) {\n outputs = consumeParams(obj);\n }\n const gas = consumeGas(obj);\n consumeEoi(obj);\n return new FunctionFragment(_guard, name, mutability, inputs, outputs, gas);\n }\n let stateMutability = obj.stateMutability;\n // Use legacy Solidity ABI logic if stateMutability is missing\n if (stateMutability == null) {\n stateMutability = \"payable\";\n if (typeof (obj.constant) === \"boolean\") {\n stateMutability = \"view\";\n if (!obj.constant) {\n stateMutability = \"payable\";\n if (typeof (obj.payable) === \"boolean\" && !obj.payable) {\n stateMutability = \"nonpayable\";\n }\n }\n }\n else if (typeof (obj.payable) === \"boolean\" && !obj.payable) {\n stateMutability = \"nonpayable\";\n }\n }\n // @TODO: verifyState for stateMutability (e.g. throw if\n // payable: false but stateMutability is \"nonpayable\")\n return new FunctionFragment(_guard, obj.name, stateMutability, obj.inputs ? obj.inputs.map(ParamType.from) : [], obj.outputs ? obj.outputs.map(ParamType.from) : [], (obj.gas != null) ? obj.gas : null);\n }\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **FunctionFragment**.\n */\n static isFragment(value) {\n return (value && value[internal] === FunctionFragmentInternal);\n }\n}\n/**\n * A Fragment which represents a structure.\n */\nexport class StructFragment extends NamedFragment {\n /**\n * @private\n */\n constructor(guard, name, inputs) {\n super(guard, \"struct\", name, inputs);\n Object.defineProperty(this, internal, { value: StructFragmentInternal });\n }\n /**\n * Returns a string representation of this struct as %%format%%.\n */\n format() {\n throw new Error(\"@TODO\");\n }\n /**\n * Returns a new **StructFragment** for %%obj%%.\n */\n static from(obj) {\n if (typeof (obj) === \"string\") {\n try {\n return StructFragment.from(lex(obj));\n }\n catch (error) {\n assertArgument(false, \"invalid struct fragment\", \"obj\", obj);\n }\n }\n else if (obj instanceof TokenString) {\n const name = consumeName(\"struct\", obj);\n const inputs = consumeParams(obj);\n consumeEoi(obj);\n return new StructFragment(_guard, name, inputs);\n }\n return new StructFragment(_guard, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []);\n }\n // @TODO: fix this return type\n /**\n * Returns ``true`` and provides a type guard if %%value%% is a\n * **StructFragment**.\n */\n static isFragment(value) {\n return (value && value[internal] === StructFragmentInternal);\n }\n}\n//# sourceMappingURL=fragments.js.map","/**\n * When sending values to or receiving values from a [[Contract]], the\n * data is generally encoded using the [ABI standard](link-solc-abi).\n *\n * The AbiCoder provides a utility to encode values to ABI data and\n * decode values from ABI data.\n *\n * Most of the time, developers should favour the [[Contract]] class,\n * which further abstracts a lot of the finer details of ABI data.\n *\n * @_section api/abi/abi-coder:ABI Encoding\n */\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { assertArgumentCount, assertArgument } from \"../utils/index.js\";\nimport { Reader, Writer } from \"./coders/abstract-coder.js\";\nimport { AddressCoder } from \"./coders/address.js\";\nimport { ArrayCoder } from \"./coders/array.js\";\nimport { BooleanCoder } from \"./coders/boolean.js\";\nimport { BytesCoder } from \"./coders/bytes.js\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes.js\";\nimport { NullCoder } from \"./coders/null.js\";\nimport { NumberCoder } from \"./coders/number.js\";\nimport { StringCoder } from \"./coders/string.js\";\nimport { TupleCoder } from \"./coders/tuple.js\";\nimport { ParamType } from \"./fragments.js\";\nimport { getAddress } from \"../address/index.js\";\nimport { getBytes, hexlify, makeError } from \"../utils/index.js\";\n// https://docs.soliditylang.org/en/v0.8.17/control-structures.html\nconst PanicReasons = new Map();\nPanicReasons.set(0x00, \"GENERIC_PANIC\");\nPanicReasons.set(0x01, \"ASSERT_FALSE\");\nPanicReasons.set(0x11, \"OVERFLOW\");\nPanicReasons.set(0x12, \"DIVIDE_BY_ZERO\");\nPanicReasons.set(0x21, \"ENUM_RANGE_ERROR\");\nPanicReasons.set(0x22, \"BAD_STORAGE_DATA\");\nPanicReasons.set(0x31, \"STACK_UNDERFLOW\");\nPanicReasons.set(0x32, \"ARRAY_RANGE_ERROR\");\nPanicReasons.set(0x41, \"OUT_OF_MEMORY\");\nPanicReasons.set(0x51, \"UNINITIALIZED_FUNCTION_CALL\");\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nlet defaultCoder = null;\nlet defaultMaxInflation = 1024;\nfunction getBuiltinCallException(action, tx, data, abiCoder) {\n let message = \"missing revert data\";\n let reason = null;\n const invocation = null;\n let revert = null;\n if (data) {\n message = \"execution reverted\";\n const bytes = getBytes(data);\n data = hexlify(data);\n if (bytes.length === 0) {\n message += \" (no data present; likely require(false) occurred\";\n reason = \"require(false)\";\n }\n else if (bytes.length % 32 !== 4) {\n message += \" (could not decode reason; invalid data length)\";\n }\n else if (hexlify(bytes.slice(0, 4)) === \"0x08c379a0\") {\n // Error(string)\n try {\n reason = abiCoder.decode([\"string\"], bytes.slice(4))[0];\n revert = {\n signature: \"Error(string)\",\n name: \"Error\",\n args: [reason]\n };\n message += `: ${JSON.stringify(reason)}`;\n }\n catch (error) {\n message += \" (could not decode reason; invalid string data)\";\n }\n }\n else if (hexlify(bytes.slice(0, 4)) === \"0x4e487b71\") {\n // Panic(uint256)\n try {\n const code = Number(abiCoder.decode([\"uint256\"], bytes.slice(4))[0]);\n revert = {\n signature: \"Panic(uint256)\",\n name: \"Panic\",\n args: [code]\n };\n reason = `Panic due to ${PanicReasons.get(code) || \"UNKNOWN\"}(${code})`;\n message += `: ${reason}`;\n }\n catch (error) {\n message += \" (could not decode panic code)\";\n }\n }\n else {\n message += \" (unknown custom error)\";\n }\n }\n const transaction = {\n to: (tx.to ? getAddress(tx.to) : null),\n data: (tx.data || \"0x\")\n };\n if (tx.from) {\n transaction.from = getAddress(tx.from);\n }\n return makeError(message, \"CALL_EXCEPTION\", {\n action, data, reason, transaction, invocation, revert\n });\n}\n/**\n * The **AbiCoder** is a low-level class responsible for encoding JavaScript\n * values into binary data and decoding binary data into JavaScript values.\n */\nexport class AbiCoder {\n #getCoder(param) {\n if (param.isArray()) {\n return new ArrayCoder(this.#getCoder(param.arrayChildren), param.arrayLength, param.name);\n }\n if (param.isTuple()) {\n return new TupleCoder(param.components.map((c) => this.#getCoder(c)), param.name);\n }\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n assertArgument(size !== 0 && size <= 256 && (size % 8) === 0, \"invalid \" + match[1] + \" bit length\", \"param\", param);\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n assertArgument(size !== 0 && size <= 32, \"invalid bytes length\", \"param\", param);\n return new FixedBytesCoder(size, param.name);\n }\n assertArgument(false, \"invalid type\", \"type\", param.type);\n }\n /**\n * Get the default values for the given %%types%%.\n *\n * For example, a ``uint`` is by default ``0`` and ``bool``\n * is by default ``false``.\n */\n getDefaultValue(types) {\n const coders = types.map((type) => this.#getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n /**\n * Encode the %%values%% as the %%types%% into ABI data.\n *\n * @returns DataHexstring\n */\n encode(types, values) {\n assertArgumentCount(values.length, types.length, \"types/values length mismatch\");\n const coders = types.map((type) => this.#getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = new Writer();\n coder.encode(writer, values);\n return writer.data;\n }\n /**\n * Decode the ABI %%data%% as the %%types%% into values.\n *\n * If %%loose%% decoding is enabled, then strict padding is\n * not enforced. Some older versions of Solidity incorrectly\n * padded event data emitted from ``external`` functions.\n */\n decode(types, data, loose) {\n const coders = types.map((type) => this.#getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(new Reader(data, loose, defaultMaxInflation));\n }\n static _setDefaultMaxInflation(value) {\n assertArgument(typeof (value) === \"number\" && Number.isInteger(value), \"invalid defaultMaxInflation factor\", \"value\", value);\n defaultMaxInflation = value;\n }\n /**\n * Returns the shared singleton instance of a default [[AbiCoder]].\n *\n * On the first call, the instance is created internally.\n */\n static defaultAbiCoder() {\n if (defaultCoder == null) {\n defaultCoder = new AbiCoder();\n }\n return defaultCoder;\n }\n /**\n * Returns an ethers-compatible [[CallExceptionError]] Error for the given\n * result %%data%% for the [[CallExceptionAction]] %%action%% against\n * the Transaction %%tx%%.\n */\n static getBuiltinCallException(action, tx, data) {\n return getBuiltinCallException(action, tx, data, AbiCoder.defaultAbiCoder());\n }\n}\n//# sourceMappingURL=abi-coder.js.map","/**\n * The Interface class is a low-level class that accepts an\n * ABI and provides all the necessary functionality to encode\n * and decode paramaters to and results from methods, events\n * and errors.\n *\n * It also provides several convenience methods to automatically\n * search and find matching transactions and events to parse them.\n *\n * @_subsection api/abi:Interfaces [interfaces]\n */\nimport { keccak256 } from \"../crypto/index.js\";\nimport { id } from \"../hash/index.js\";\nimport { concat, dataSlice, getBigInt, getBytes, getBytesCopy, hexlify, zeroPadBytes, zeroPadValue, isHexString, defineProperties, assertArgument, toBeHex, assert } from \"../utils/index.js\";\nimport { AbiCoder } from \"./abi-coder.js\";\nimport { checkResultErrors, Result } from \"./coders/abstract-coder.js\";\nimport { ConstructorFragment, ErrorFragment, EventFragment, Fragment, FunctionFragment, ParamType } from \"./fragments.js\";\nimport { Typed } from \"./typed.js\";\nexport { checkResultErrors, Result };\n/**\n * When using the [[Interface-parseLog]] to automatically match a Log to its event\n * for parsing, a **LogDescription** is returned.\n */\nexport class LogDescription {\n /**\n * The matching fragment for the ``topic0``.\n */\n fragment;\n /**\n * The name of the Event.\n */\n name;\n /**\n * The full Event signature.\n */\n signature;\n /**\n * The topic hash for the Event.\n */\n topic;\n /**\n * The arguments passed into the Event with ``emit``.\n */\n args;\n /**\n * @_ignore:\n */\n constructor(fragment, topic, args) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, signature, topic, args\n });\n }\n}\n/**\n * When using the [[Interface-parseTransaction]] to automatically match\n * a transaction data to its function for parsing,\n * a **TransactionDescription** is returned.\n */\nexport class TransactionDescription {\n /**\n * The matching fragment from the transaction ``data``.\n */\n fragment;\n /**\n * The name of the Function from the transaction ``data``.\n */\n name;\n /**\n * The arguments passed to the Function from the transaction ``data``.\n */\n args;\n /**\n * The full Function signature from the transaction ``data``.\n */\n signature;\n /**\n * The selector for the Function from the transaction ``data``.\n */\n selector;\n /**\n * The ``value`` (in wei) from the transaction.\n */\n value;\n /**\n * @_ignore:\n */\n constructor(fragment, selector, args, value) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, args, signature, selector, value\n });\n }\n}\n/**\n * When using the [[Interface-parseError]] to automatically match an\n * error for a call result for parsing, an **ErrorDescription** is returned.\n */\nexport class ErrorDescription {\n /**\n * The matching fragment.\n */\n fragment;\n /**\n * The name of the Error.\n */\n name;\n /**\n * The arguments passed to the Error with ``revert``.\n */\n args;\n /**\n * The full Error signature.\n */\n signature;\n /**\n * The selector for the Error.\n */\n selector;\n /**\n * @_ignore:\n */\n constructor(fragment, selector, args) {\n const name = fragment.name, signature = fragment.format();\n defineProperties(this, {\n fragment, name, args, signature, selector\n });\n }\n}\n/**\n * An **Indexed** is used as a value when a value that does not\n * fit within a topic (i.e. not a fixed-length, 32-byte type). It\n * is the ``keccak256`` of the value, and used for types such as\n * arrays, tuples, bytes and strings.\n */\nexport class Indexed {\n /**\n * The ``keccak256`` of the value logged.\n */\n hash;\n /**\n * @_ignore:\n */\n _isIndexed;\n /**\n * Returns ``true`` if %%value%% is an **Indexed**.\n *\n * This provides a Type Guard for property access.\n */\n static isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n /**\n * @_ignore:\n */\n constructor(hash) {\n defineProperties(this, { hash, _isIndexed: true });\n }\n}\n// https://docs.soliditylang.org/en/v0.8.13/control-structures.html?highlight=panic#panic-via-assert-and-error-via-require\nconst PanicReasons = {\n \"0\": \"generic panic\",\n \"1\": \"assert(false)\",\n \"17\": \"arithmetic overflow\",\n \"18\": \"division or modulo by zero\",\n \"33\": \"enum overflow\",\n \"34\": \"invalid encoded storage byte array accessed\",\n \"49\": \"out-of-bounds array access; popping on an empty array\",\n \"50\": \"out-of-bounds access of an array or bytesN\",\n \"65\": \"out of memory\",\n \"81\": \"uninitialized function\",\n};\nconst BuiltinErrors = {\n \"0x08c379a0\": {\n signature: \"Error(string)\",\n name: \"Error\",\n inputs: [\"string\"],\n reason: (message) => {\n return `reverted with reason string ${JSON.stringify(message)}`;\n }\n },\n \"0x4e487b71\": {\n signature: \"Panic(uint256)\",\n name: \"Panic\",\n inputs: [\"uint256\"],\n reason: (code) => {\n let reason = \"unknown panic code\";\n if (code >= 0 && code <= 0xff && PanicReasons[code.toString()]) {\n reason = PanicReasons[code.toString()];\n }\n return `reverted with panic code 0x${code.toString(16)} (${reason})`;\n }\n }\n};\n/**\n * An Interface abstracts many of the low-level details for\n * encoding and decoding the data on the blockchain.\n *\n * An ABI provides information on how to encode data to send to\n * a Contract, how to decode the results and events and how to\n * interpret revert errors.\n *\n * The ABI can be specified by [any supported format](InterfaceAbi).\n */\nexport class Interface {\n /**\n * All the Contract ABI members (i.e. methods, events, errors, etc).\n */\n fragments;\n /**\n * The Contract constructor.\n */\n deploy;\n /**\n * The Fallback method, if any.\n */\n fallback;\n /**\n * If receiving ether is supported.\n */\n receive;\n #errors;\n #events;\n #functions;\n // #structs: Map<string, StructFragment>;\n #abiCoder;\n /**\n * Create a new Interface for the %%fragments%%.\n */\n constructor(fragments) {\n let abi = [];\n if (typeof (fragments) === \"string\") {\n abi = JSON.parse(fragments);\n }\n else {\n abi = fragments;\n }\n this.#functions = new Map();\n this.#errors = new Map();\n this.#events = new Map();\n // this.#structs = new Map();\n const frags = [];\n for (const a of abi) {\n try {\n frags.push(Fragment.from(a));\n }\n catch (error) {\n console.log(`[Warning] Invalid Fragment ${JSON.stringify(a)}:`, error.message);\n }\n }\n defineProperties(this, {\n fragments: Object.freeze(frags)\n });\n let fallback = null;\n let receive = false;\n this.#abiCoder = this.getAbiCoder();\n // Add all fragments by their signature\n this.fragments.forEach((fragment, index) => {\n let bucket;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n console.log(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineProperties(this, { deploy: fragment });\n return;\n case \"fallback\":\n if (fragment.inputs.length === 0) {\n receive = true;\n }\n else {\n assertArgument(!fallback || fragment.payable !== fallback.payable, \"conflicting fallback fragments\", `fragments[${index}]`, fragment);\n fallback = fragment;\n receive = fallback.payable;\n }\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (<FunctionFragment>fragment).outputs);\n bucket = this.#functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.#events;\n break;\n case \"error\":\n bucket = this.#errors;\n break;\n default:\n return;\n }\n // Two identical entries; ignore it\n const signature = fragment.format();\n if (bucket.has(signature)) {\n return;\n }\n bucket.set(signature, fragment);\n });\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineProperties(this, {\n deploy: ConstructorFragment.from(\"constructor()\")\n });\n }\n defineProperties(this, { fallback, receive });\n }\n /**\n * Returns the entire Human-Readable ABI, as an array of\n * signatures, optionally as %%minimal%% strings, which\n * removes parameter names and unneceesary spaces.\n */\n format(minimal) {\n const format = (minimal ? \"minimal\" : \"full\");\n const abi = this.fragments.map((f) => f.format(format));\n return abi;\n }\n /**\n * Return the JSON-encoded ABI. This is the format Solidiy\n * returns.\n */\n formatJson() {\n const abi = this.fragments.map((f) => f.format(\"json\"));\n // We need to re-bundle the JSON fragments a bit\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n /**\n * The ABI coder that will be used to encode and decode binary\n * data.\n */\n getAbiCoder() {\n return AbiCoder.defaultAbiCoder();\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n #getFunction(key, values, forceUnique) {\n // Selector\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n for (const fragment of this.#functions.values()) {\n if (selector === fragment.selector) {\n return fragment;\n }\n }\n return null;\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of this.#functions) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n if (values) {\n const lastValue = (values.length > 0) ? values[values.length - 1] : null;\n let valueLength = values.length;\n let allowOptions = true;\n if (Typed.isTyped(lastValue) && lastValue.type === \"overrides\") {\n allowOptions = false;\n valueLength--;\n }\n // Remove all matches that don't have a compatible length. The args\n // may contain an overrides, so the match may have n or n - 1 parameters\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs.length;\n if (inputs !== valueLength && (!allowOptions || inputs !== valueLength - 1)) {\n matching.splice(i, 1);\n }\n }\n // Remove all matches that don't match the Typed signature\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs;\n for (let j = 0; j < values.length; j++) {\n // Not a typed value\n if (!Typed.isTyped(values[j])) {\n continue;\n }\n // We are past the inputs\n if (j >= inputs.length) {\n if (values[j].type === \"overrides\") {\n continue;\n }\n matching.splice(i, 1);\n break;\n }\n // Make sure the value type matches the input type\n if (values[j].type !== inputs[j].baseType) {\n matching.splice(i, 1);\n break;\n }\n }\n }\n }\n // We found a single matching signature with an overrides, but the\n // last value is something that cannot possibly be an options\n if (matching.length === 1 && values && values.length !== matching[0].inputs.length) {\n const lastArg = values[values.length - 1];\n if (lastArg == null || Array.isArray(lastArg) || typeof (lastArg) !== \"object\") {\n matching.splice(0, 1);\n }\n }\n if (matching.length === 0) {\n return null;\n }\n if (matching.length > 1 && forceUnique) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(\", \");\n assertArgument(false, `ambiguous function description (i.e. matches ${matchStr})`, \"key\", key);\n }\n return matching[0];\n }\n // Normalize the signature and lookup the function\n const result = this.#functions.get(FunctionFragment.from(key).format());\n if (result) {\n return result;\n }\n return null;\n }\n /**\n * Get the function name for %%key%%, which may be a function selector,\n * function name or function signature that belongs to the ABI.\n */\n getFunctionName(key) {\n const fragment = this.#getFunction(key, null, false);\n assertArgument(fragment, \"no matching function\", \"key\", key);\n return fragment.name;\n }\n /**\n * Returns true if %%key%% (a function selector, function name or\n * function signature) is present in the ABI.\n *\n * In the case of a function name, the name may be ambiguous, so\n * accessing the [[FunctionFragment]] may require refinement.\n */\n hasFunction(key) {\n return !!this.#getFunction(key, null, false);\n }\n /**\n * Get the [[FunctionFragment]] for %%key%%, which may be a function\n * selector, function name or function signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple functions match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single function in\n * the ABI, this will throw.\n */\n getFunction(key, values) {\n return this.#getFunction(key, values || null, true);\n }\n /**\n * Iterate over all functions, calling %%callback%%, sorted by their name.\n */\n forEachFunction(callback) {\n const names = Array.from(this.#functions.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback((this.#functions.get(name)), i);\n }\n }\n // Find an event definition by any means necessary (unless it is ambiguous)\n #getEvent(key, values, forceUnique) {\n // EventTopic\n if (isHexString(key)) {\n const eventTopic = key.toLowerCase();\n for (const fragment of this.#events.values()) {\n if (eventTopic === fragment.topicHash) {\n return fragment;\n }\n }\n return null;\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of this.#events) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n if (values) {\n // Remove all matches that don't have a compatible length.\n for (let i = matching.length - 1; i >= 0; i--) {\n if (matching[i].inputs.length < values.length) {\n matching.splice(i, 1);\n }\n }\n // Remove all matches that don't match the Typed signature\n for (let i = matching.length - 1; i >= 0; i--) {\n const inputs = matching[i].inputs;\n for (let j = 0; j < values.length; j++) {\n // Not a typed value\n if (!Typed.isTyped(values[j])) {\n continue;\n }\n // Make sure the value type matches the input type\n if (values[j].type !== inputs[j].baseType) {\n matching.splice(i, 1);\n break;\n }\n }\n }\n }\n if (matching.length === 0) {\n return null;\n }\n if (matching.length > 1 && forceUnique) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(\", \");\n assertArgument(false, `ambiguous event description (i.e. matches ${matchStr})`, \"key\", key);\n }\n return matching[0];\n }\n // Normalize the signature and lookup the function\n const result = this.#events.get(EventFragment.from(key).format());\n if (result) {\n return result;\n }\n return null;\n }\n /**\n * Get the event name for %%key%%, which may be a topic hash,\n * event name or event signature that belongs to the ABI.\n */\n getEventName(key) {\n const fragment = this.#getEvent(key, null, false);\n assertArgument(fragment, \"no matching event\", \"key\", key);\n return fragment.name;\n }\n /**\n * Returns true if %%key%% (an event topic hash, event name or\n * event signature) is present in the ABI.\n *\n * In the case of an event name, the name may be ambiguous, so\n * accessing the [[EventFragment]] may require refinement.\n */\n hasEvent(key) {\n return !!this.#getEvent(key, null, false);\n }\n /**\n * Get the [[EventFragment]] for %%key%%, which may be a topic hash,\n * event name or event signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple events match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single event in\n * the ABI, this will throw.\n */\n getEvent(key, values) {\n return this.#getEvent(key, values || null, true);\n }\n /**\n * Iterate over all events, calling %%callback%%, sorted by their name.\n */\n forEachEvent(callback) {\n const names = Array.from(this.#events.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback((this.#events.get(name)), i);\n }\n }\n /**\n * Get the [[ErrorFragment]] for %%key%%, which may be an error\n * selector, error name or error signature that belongs to the ABI.\n *\n * If %%values%% is provided, it will use the Typed API to handle\n * ambiguous cases where multiple errors match by name.\n *\n * If the %%key%% and %%values%% do not refine to a single error in\n * the ABI, this will throw.\n */\n getError(key, values) {\n if (isHexString(key)) {\n const selector = key.toLowerCase();\n if (BuiltinErrors[selector]) {\n return ErrorFragment.from(BuiltinErrors[selector].signature);\n }\n for (const fragment of this.#errors.values()) {\n if (selector === fragment.selector) {\n return fragment;\n }\n }\n return null;\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (key.indexOf(\"(\") === -1) {\n const matching = [];\n for (const [name, fragment] of this.#errors) {\n if (name.split(\"(\" /* fix:) */)[0] === key) {\n matching.push(fragment);\n }\n }\n if (matching.length === 0) {\n if (key === \"Error\") {\n return ErrorFragment.from(\"error Error(string)\");\n }\n if (key === \"Panic\") {\n return ErrorFragment.from(\"error Panic(uint256)\");\n }\n return null;\n }\n else if (matching.length > 1) {\n const matchStr = matching.map((m) => JSON.stringify(m.format())).join(\", \");\n assertArgument(false, `ambiguous error description (i.e. ${matchStr})`, \"name\", key);\n }\n return matching[0];\n }\n // Normalize the signature and lookup the function\n key = ErrorFragment.from(key).format();\n if (key === \"Error(string)\") {\n return ErrorFragment.from(\"error Error(string)\");\n }\n if (key === \"Panic(uint256)\") {\n return ErrorFragment.from(\"error Panic(uint256)\");\n }\n const result = this.#errors.get(key);\n if (result) {\n return result;\n }\n return null;\n }\n /**\n * Iterate over all errors, calling %%callback%%, sorted by their name.\n */\n forEachError(callback) {\n const names = Array.from(this.#errors.keys());\n names.sort((a, b) => a.localeCompare(b));\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n callback((this.#errors.get(name)), i);\n }\n }\n // Get the 4-byte selector used by Solidity to identify a function\n /*\ngetSelector(fragment: ErrorFragment | FunctionFragment): string {\n if (typeof(fragment) === \"string\") {\n const matches: Array<Fragment> = [ ];\n\n try { matches.push(this.getFunction(fragment)); } catch (error) { }\n try { matches.push(this.getError(<string>fragment)); } catch (_) { }\n\n if (matches.length === 0) {\n logger.throwArgumentError(\"unknown fragment\", \"key\", fragment);\n } else if (matches.length > 1) {\n logger.throwArgumentError(\"ambiguous fragment matches function and error\", \"key\", fragment);\n }\n\n fragment = matches[0];\n }\n\n return dataSlice(id(fragment.format()), 0, 4);\n}\n */\n // Get the 32-byte topic hash used by Solidity to identify an event\n /*\n getEventTopic(fragment: EventFragment): string {\n //if (typeof(fragment) === \"string\") { fragment = this.getEvent(eventFragment); }\n return id(fragment.format());\n }\n */\n _decodeParams(params, data) {\n return this.#abiCoder.decode(params, data);\n }\n _encodeParams(params, values) {\n return this.#abiCoder.encode(params, values);\n }\n /**\n * Encodes a ``tx.data`` object for deploying the Contract with\n * the %%values%% as the constructor arguments.\n */\n encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n /**\n * Decodes the result %%data%% (e.g. from an ``eth_call``) for the\n * specified error (see [[getError]] for valid values for\n * %%key%%).\n *\n * Most developers should prefer the [[parseCallResult]] method instead,\n * which will automatically detect a ``CALL_EXCEPTION`` and throw the\n * corresponding error.\n */\n decodeErrorResult(fragment, data) {\n if (typeof (fragment) === \"string\") {\n const f = this.getError(fragment);\n assertArgument(f, \"unknown error\", \"fragment\", fragment);\n fragment = f;\n }\n assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match error ${fragment.name}.`, \"data\", data);\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\n }\n /**\n * Encodes the transaction revert data for a call result that\n * reverted from the the Contract with the sepcified %%error%%\n * (see [[getError]] for valid values for %%fragment%%) with the %%values%%.\n *\n * This is generally not used by most developers, unless trying to mock\n * a result from a Contract.\n */\n encodeErrorResult(fragment, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getError(fragment);\n assertArgument(f, \"unknown error\", \"fragment\", fragment);\n fragment = f;\n }\n return concat([\n fragment.selector,\n this._encodeParams(fragment.inputs, values || [])\n ]);\n }\n /**\n * Decodes the %%data%% from a transaction ``tx.data`` for\n * the function specified (see [[getFunction]] for valid values\n * for %%fragment%%).\n *\n * Most developers should prefer the [[parseTransaction]] method\n * instead, which will automatically detect the fragment.\n */\n decodeFunctionData(fragment, data) {\n if (typeof (fragment) === \"string\") {\n const f = this.getFunction(fragment);\n assertArgument(f, \"unknown function\", \"fragment\", fragment);\n fragment = f;\n }\n assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match function ${fragment.name}.`, \"data\", data);\n return this._decodeParams(fragment.inputs, dataSlice(data, 4));\n }\n /**\n * Encodes the ``tx.data`` for a transaction that calls the function\n * specified (see [[getFunction]] for valid values for %%fragment%%) with\n * the %%values%%.\n */\n encodeFunctionData(fragment, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getFunction(fragment);\n assertArgument(f, \"unknown function\", \"fragment\", fragment);\n fragment = f;\n }\n return concat([\n fragment.selector,\n this._encodeParams(fragment.inputs, values || [])\n ]);\n }\n /**\n * Decodes the result %%data%% (e.g. from an ``eth_call``) for the\n * specified function (see [[getFunction]] for valid values for\n * %%key%%).\n *\n * Most developers should prefer the [[parseCallResult]] method instead,\n * which will automatically detect a ``CALL_EXCEPTION`` and throw the\n * corresponding error.\n */\n decodeFunctionResult(fragment, data) {\n if (typeof (fragment) === \"string\") {\n const f = this.getFunction(fragment);\n assertArgument(f, \"unknown function\", \"fragment\", fragment);\n fragment = f;\n }\n let message = \"invalid length for result data\";\n const bytes = getBytesCopy(data);\n if ((bytes.length % 32) === 0) {\n try {\n return this.#abiCoder.decode(fragment.outputs, bytes);\n }\n catch (error) {\n message = \"could not decode result data\";\n }\n }\n // Call returned data with no error, but the data is junk\n assert(false, message, \"BAD_DATA\", {\n value: hexlify(bytes),\n info: { method: fragment.name, signature: fragment.format() }\n });\n }\n makeError(_data, tx) {\n const data = getBytes(_data, \"data\");\n const error = AbiCoder.getBuiltinCallException(\"call\", tx, data);\n // Not a built-in error; try finding a custom error\n const customPrefix = \"execution reverted (unknown custom error)\";\n if (error.message.startsWith(customPrefix)) {\n const selector = hexlify(data.slice(0, 4));\n const ef = this.getError(selector);\n if (ef) {\n try {\n const args = this.#abiCoder.decode(ef.inputs, data.slice(4));\n error.revert = {\n name: ef.name, signature: ef.format(), args\n };\n error.reason = error.revert.signature;\n error.message = `execution reverted: ${error.reason}`;\n }\n catch (e) {\n error.message = `execution reverted (coult not decode custom error)`;\n }\n }\n }\n // Add the invocation, if available\n const parsed = this.parseTransaction(tx);\n if (parsed) {\n error.invocation = {\n method: parsed.name,\n signature: parsed.signature,\n args: parsed.args\n };\n }\n return error;\n }\n /**\n * Encodes the result data (e.g. from an ``eth_call``) for the\n * specified function (see [[getFunction]] for valid values\n * for %%fragment%%) with %%values%%.\n *\n * This is generally not used by most developers, unless trying to mock\n * a result from a Contract.\n */\n encodeFunctionResult(fragment, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getFunction(fragment);\n assertArgument(f, \"unknown function\", \"fragment\", fragment);\n fragment = f;\n }\n return hexlify(this.#abiCoder.encode(fragment.outputs, values || []));\n }\n /*\n spelunk(inputs: Array<ParamType>, values: ReadonlyArray<any>, processfunc: (type: string, value: any) => Promise<any>): Promise<Array<any>> {\n const promises: Array<Promise<>> = [ ];\n const process = function(type: ParamType, value: any): any {\n if (type.baseType === \"array\") {\n return descend(type.child\n }\n if (type. === \"address\") {\n }\n };\n \n const descend = function (inputs: Array<ParamType>, values: ReadonlyArray<any>) {\n if (inputs.length !== values.length) { throw new Error(\"length mismatch\"); }\n \n };\n \n const result: Array<any> = [ ];\n values.forEach((value, index) => {\n if (value == null) {\n topics.push(null);\n } else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n } else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n } else {\n topics.push(encodeTopic(param, value));\n }\n });\n }\n */\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(fragment, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getEvent(fragment);\n assertArgument(f, \"unknown event\", \"eventFragment\", fragment);\n fragment = f;\n }\n assert(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, \"UNEXPECTED_ARGUMENT\", { count: values.length, expectedCount: fragment.inputs.length });\n const topics = [];\n if (!fragment.anonymous) {\n topics.push(fragment.topicHash);\n }\n // @TODO: Use the coders for this; to properly support tuples, etc.\n const encodeTopic = (param, value) => {\n if (param.type === \"string\") {\n return id(value);\n }\n else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n if (param.type === \"bool\" && typeof (value) === \"boolean\") {\n value = (value ? \"0x01\" : \"0x00\");\n }\n else if (param.type.match(/^u?int/)) {\n value = toBeHex(value); // @TODO: Should this toTwos??\n }\n else if (param.type.match(/^bytes/)) {\n value = zeroPadBytes(value, 32);\n }\n else if (param.type === \"address\") {\n // Check addresses are valid\n this.#abiCoder.encode([\"address\"], [value]);\n }\n return zeroPadValue(hexlify(value), 32);\n };\n values.forEach((value, index) => {\n const param = fragment.inputs[index];\n if (!param.indexed) {\n assertArgument(value == null, \"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n return;\n }\n if (value == null) {\n topics.push(null);\n }\n else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n assertArgument(false, \"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n }\n else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n }\n else {\n topics.push(encodeTopic(param, value));\n }\n });\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n return topics;\n }\n encodeEventLog(fragment, values) {\n if (typeof (fragment) === \"string\") {\n const f = this.getEvent(fragment);\n assertArgument(f, \"unknown event\", \"eventFragment\", fragment);\n fragment = f;\n }\n const topics = [];\n const dataTypes = [];\n const dataValues = [];\n if (!fragment.anonymous) {\n topics.push(fragment.topicHash);\n }\n assertArgument(values.length === fragment.inputs.length, \"event arguments/values mismatch\", \"values\", values);\n fragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value));\n }\n else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n }\n else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n }\n else {\n topics.push(this.#abiCoder.encode([param.type], [value]));\n }\n }\n else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n return {\n data: this.#abiCoder.encode(dataTypes, dataValues),\n topics: topics\n };\n }\n // Decode a filter for the event and the search criteria\n decodeEventLog(fragment, data, topics) {\n if (typeof (fragment) === \"string\") {\n const f = this.getEvent(fragment);\n assertArgument(f, \"unknown event\", \"eventFragment\", fragment);\n fragment = f;\n }\n if (topics != null && !fragment.anonymous) {\n const eventTopic = fragment.topicHash;\n assertArgument(isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic, \"fragment/topic mismatch\", \"topics[0]\", topics[0]);\n topics = topics.slice(1);\n }\n const indexed = [];\n const nonIndexed = [];\n const dynamic = [];\n fragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.from({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n }\n else {\n indexed.push(param);\n dynamic.push(false);\n }\n }\n else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n const resultIndexed = (topics != null) ? this.#abiCoder.decode(indexed, concat(topics)) : null;\n const resultNonIndexed = this.#abiCoder.decode(nonIndexed, data, true);\n //const result: (Array<any> & { [ key: string ]: any }) = [ ];\n const values = [];\n const keys = [];\n let nonIndexedIndex = 0, indexedIndex = 0;\n fragment.inputs.forEach((param, index) => {\n let value = null;\n if (param.indexed) {\n if (resultIndexed == null) {\n value = new Indexed(null);\n }\n else if (dynamic[index]) {\n value = new Indexed(resultIndexed[indexedIndex++]);\n }\n else {\n try {\n value = resultIndexed[indexedIndex++];\n }\n catch (error) {\n value = error;\n }\n }\n }\n else {\n try {\n value = resultNonIndexed[nonIndexedIndex++];\n }\n catch (error) {\n value = error;\n }\n }\n values.push(value);\n keys.push(param.name || null);\n });\n return Result.fromItems(values, keys);\n }\n /**\n * Parses a transaction, finding the matching function and extracts\n * the parameter values along with other useful function details.\n *\n * If the matching function cannot be found, return null.\n */\n parseTransaction(tx) {\n const data = getBytes(tx.data, \"tx.data\");\n const value = getBigInt((tx.value != null) ? tx.value : 0, \"tx.value\");\n const fragment = this.getFunction(hexlify(data.slice(0, 4)));\n if (!fragment) {\n return null;\n }\n const args = this.#abiCoder.decode(fragment.inputs, data.slice(4));\n return new TransactionDescription(fragment, fragment.selector, args, value);\n }\n parseCallResult(data) {\n throw new Error(\"@TODO\");\n }\n /**\n * Parses a receipt log, finding the matching event and extracts\n * the parameter values along with other useful event details.\n *\n * If the matching event cannot be found, returns null.\n */\n parseLog(log) {\n const fragment = this.getEvent(log.topics[0]);\n if (!fragment || fragment.anonymous) {\n return null;\n }\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n return new LogDescription(fragment, fragment.topicHash, this.decodeEventLog(fragment, log.data, log.topics));\n }\n /**\n * Parses a revert data, finding the matching error and extracts\n * the parameter values along with other useful error details.\n *\n * If the matching error cannot be found, returns null.\n */\n parseError(data) {\n const hexData = hexlify(data);\n const fragment = this.getError(dataSlice(hexData, 0, 4));\n if (!fragment) {\n return null;\n }\n const args = this.#abiCoder.decode(fragment.inputs, dataSlice(hexData, 4));\n return new ErrorDescription(fragment, fragment.selector, args);\n }\n /**\n * Creates a new [[Interface]] from the ABI %%value%%.\n *\n * The %%value%% may be provided as an existing [[Interface]] object,\n * a JSON-encoded ABI or any Human-Readable ABI format.\n */\n static from(value) {\n // Already an Interface, which is immutable\n if (value instanceof Interface) {\n return value;\n }\n // JSON\n if (typeof (value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n // An Interface; possibly from another v6 instance\n if (typeof (value.formatJson) === \"function\") {\n return new Interface(value.formatJson());\n }\n // A legacy Interface; from an older version\n if (typeof (value.format) === \"function\") {\n return new Interface(value.format(\"json\"));\n }\n // Array of fragments\n return new Interface(value);\n }\n}\n//# sourceMappingURL=interface.js.map","//import { resolveAddress } from \"@ethersproject/address\";\nimport { defineProperties, getBigInt, getNumber, hexlify, isBytesLike, resolveProperties, assert, assertArgument, isError, makeError } from \"../utils/index.js\";\nimport { accessListify } from \"../transaction/index.js\";\nconst BN_0 = BigInt(0);\n// -----------------------\nfunction getValue(value) {\n if (value == null) {\n return null;\n }\n return value;\n}\nfunction toJson(value) {\n if (value == null) {\n return null;\n }\n return value.toString();\n}\n// @TODO? <T extends FeeData = { }> implements Required<T>\n/**\n * A **FeeData** wraps all the fee-related values associated with\n * the network.\n */\nexport class FeeData {\n /**\n * The gas price for legacy networks.\n */\n gasPrice;\n /**\n * The maximum fee to pay per gas.\n *\n * The base fee per gas is defined by the network and based on\n * congestion, increasing the cost during times of heavy load\n * and lowering when less busy.\n *\n * The actual fee per gas will be the base fee for the block\n * and the priority fee, up to the max fee per gas.\n *\n * This will be ``null`` on legacy networks (i.e. [pre-EIP-1559](link-eip-1559))\n */\n maxFeePerGas;\n /**\n * The additional amout to pay per gas to encourage a validator\n * to include the transaction.\n *\n * The purpose of this is to compensate the validator for the\n * adjusted risk for including a given transaction.\n *\n * This will be ``null`` on legacy networks (i.e. [pre-EIP-1559](link-eip-1559))\n */\n maxPriorityFeePerGas;\n /**\n * Creates a new FeeData for %%gasPrice%%, %%maxFeePerGas%% and\n * %%maxPriorityFeePerGas%%.\n */\n constructor(gasPrice, maxFeePerGas, maxPriorityFeePerGas) {\n defineProperties(this, {\n gasPrice: getValue(gasPrice),\n maxFeePerGas: getValue(maxFeePerGas),\n maxPriorityFeePerGas: getValue(maxPriorityFeePerGas)\n });\n }\n /**\n * Returns a JSON-friendly value.\n */\n toJSON() {\n const { gasPrice, maxFeePerGas, maxPriorityFeePerGas } = this;\n return {\n _type: \"FeeData\",\n gasPrice: toJson(gasPrice),\n maxFeePerGas: toJson(maxFeePerGas),\n maxPriorityFeePerGas: toJson(maxPriorityFeePerGas),\n };\n }\n}\n;\n/**\n * Returns a copy of %%req%% with all properties coerced to their strict\n * types.\n */\nexport function copyRequest(req) {\n const result = {};\n // These could be addresses, ENS names or Addressables\n if (req.to) {\n result.to = req.to;\n }\n if (req.from) {\n result.from = req.from;\n }\n if (req.data) {\n result.data = hexlify(req.data);\n }\n const bigIntKeys = \"chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value\".split(/,/);\n for (const key of bigIntKeys) {\n if (!(key in req) || req[key] == null) {\n continue;\n }\n result[key] = getBigInt(req[key], `request.${key}`);\n }\n const numberKeys = \"type,nonce\".split(/,/);\n for (const key of numberKeys) {\n if (!(key in req) || req[key] == null) {\n continue;\n }\n result[key] = getNumber(req[key], `request.${key}`);\n }\n if (req.accessList) {\n result.accessList = accessListify(req.accessList);\n }\n if (\"blockTag\" in req) {\n result.blockTag = req.blockTag;\n }\n if (\"enableCcipRead\" in req) {\n result.enableCcipRead = !!req.enableCcipRead;\n }\n if (\"customData\" in req) {\n result.customData = req.customData;\n }\n if (\"blobVersionedHashes\" in req && req.blobVersionedHashes) {\n result.blobVersionedHashes = req.blobVersionedHashes.slice();\n }\n if (\"kzg\" in req) {\n result.kzg = req.kzg;\n }\n if (\"blobs\" in req && req.blobs) {\n result.blobs = req.blobs.map((b) => {\n if (isBytesLike(b)) {\n return hexlify(b);\n }\n return Object.assign({}, b);\n });\n }\n return result;\n}\n/**\n * A **Block** represents the data associated with a full block on\n * Ethereum.\n */\nexport class Block {\n /**\n * The provider connected to the block used to fetch additional details\n * if necessary.\n */\n provider;\n /**\n * The block number, sometimes called the block height. This is a\n * sequential number that is one higher than the parent block.\n */\n number;\n /**\n * The block hash.\n *\n * This hash includes all properties, so can be safely used to identify\n * an exact set of block properties.\n */\n hash;\n /**\n * The timestamp for this block, which is the number of seconds since\n * epoch that this block was included.\n */\n timestamp;\n /**\n * The block hash of the parent block.\n */\n parentHash;\n /**\n * The hash tree root of the parent beacon block for the given\n * execution block. See [[link-eip-4788]].\n */\n parentBeaconBlockRoot;\n /**\n * The nonce.\n *\n * On legacy networks, this is the random number inserted which\n * permitted the difficulty target to be reached.\n */\n nonce;\n /**\n * The difficulty target.\n *\n * On legacy networks, this is the proof-of-work target required\n * for a block to meet the protocol rules to be included.\n *\n * On modern networks, this is a random number arrived at using\n * randao. @TODO: Find links?\n */\n difficulty;\n /**\n * The total gas limit for this block.\n */\n gasLimit;\n /**\n * The total gas used in this block.\n */\n gasUsed;\n /**\n * The root hash for the global state after applying changes\n * in this block.\n */\n stateRoot;\n /**\n * The hash of the transaction receipts trie.\n */\n receiptsRoot;\n /**\n * The total amount of blob gas consumed by the transactions\n * within the block. See [[link-eip-4844]].\n */\n blobGasUsed;\n /**\n * The running total of blob gas consumed in excess of the\n * target, prior to the block. See [[link-eip-4844]].\n */\n excessBlobGas;\n /**\n * The miner coinbase address, wihch receives any subsidies for\n * including this block.\n */\n miner;\n /**\n * The latest RANDAO mix of the post beacon state of\n * the previous block.\n */\n prevRandao;\n /**\n * Any extra data the validator wished to include.\n */\n extraData;\n /**\n * The base fee per gas that all transactions in this block were\n * charged.\n *\n * This adjusts after each block, depending on how congested the network\n * is.\n */\n baseFeePerGas;\n #transactions;\n /**\n * Create a new **Block** object.\n *\n * This should generally not be necessary as the unless implementing a\n * low-level library.\n */\n constructor(block, provider) {\n this.#transactions = block.transactions.map((tx) => {\n if (typeof (tx) !== \"string\") {\n return new TransactionResponse(tx, provider);\n }\n return tx;\n });\n defineProperties(this, {\n provider,\n hash: getValue(block.hash),\n number: block.number,\n timestamp: block.timestamp,\n parentHash: block.parentHash,\n parentBeaconBlockRoot: block.parentBeaconBlockRoot,\n nonce: block.nonce,\n difficulty: block.difficulty,\n gasLimit: block.gasLimit,\n gasUsed: block.gasUsed,\n blobGasUsed: block.blobGasUsed,\n excessBlobGas: block.excessBlobGas,\n miner: block.miner,\n prevRandao: getValue(block.prevRandao),\n extraData: block.extraData,\n baseFeePerGas: getValue(block.baseFeePerGas),\n stateRoot: block.stateRoot,\n receiptsRoot: block.receiptsRoot,\n });\n }\n /**\n * Returns the list of transaction hashes, in the order\n * they were executed within the block.\n */\n get transactions() {\n return this.#transactions.map((tx) => {\n if (typeof (tx) === \"string\") {\n return tx;\n }\n return tx.hash;\n });\n }\n /**\n * Returns the complete transactions, in the order they\n * were executed within the block.\n *\n * This is only available for blocks which prefetched\n * transactions, by passing ``true`` to %%prefetchTxs%%\n * into [[Provider-getBlock]].\n */\n get prefetchedTransactions() {\n const txs = this.#transactions.slice();\n // Doesn't matter...\n if (txs.length === 0) {\n return [];\n }\n // Make sure we prefetched the transactions\n assert(typeof (txs[0]) === \"object\", \"transactions were not prefetched with block request\", \"UNSUPPORTED_OPERATION\", {\n operation: \"transactionResponses()\"\n });\n return txs;\n }\n /**\n * Returns a JSON-friendly value.\n */\n toJSON() {\n const { baseFeePerGas, difficulty, extraData, gasLimit, gasUsed, hash, miner, prevRandao, nonce, number, parentHash, parentBeaconBlockRoot, stateRoot, receiptsRoot, timestamp, transactions } = this;\n return {\n _type: \"Block\",\n baseFeePerGas: toJson(baseFeePerGas),\n difficulty: toJson(difficulty),\n extraData,\n gasLimit: toJson(gasLimit),\n gasUsed: toJson(gasUsed),\n blobGasUsed: toJson(this.blobGasUsed),\n excessBlobGas: toJson(this.excessBlobGas),\n hash, miner, prevRandao, nonce, number, parentHash, timestamp,\n parentBeaconBlockRoot, stateRoot, receiptsRoot,\n transactions,\n };\n }\n [Symbol.iterator]() {\n let index = 0;\n const txs = this.transactions;\n return {\n next: () => {\n if (index < this.length) {\n return {\n value: txs[index++], done: false\n };\n }\n return { value: undefined, done: true };\n }\n };\n }\n /**\n * The number of transactions in this block.\n */\n get length() { return this.#transactions.length; }\n /**\n * The [[link-js-date]] this block was included at.\n */\n get date() {\n if (this.timestamp == null) {\n return null;\n }\n return new Date(this.timestamp * 1000);\n }\n /**\n * Get the transaction at %%indexe%% within this block.\n */\n async getTransaction(indexOrHash) {\n // Find the internal value by its index or hash\n let tx = undefined;\n if (typeof (indexOrHash) === \"number\") {\n tx = this.#transactions[indexOrHash];\n }\n else {\n const hash = indexOrHash.toLowerCase();\n for (const v of this.#transactions) {\n if (typeof (v) === \"string\") {\n if (v !== hash) {\n continue;\n }\n tx = v;\n break;\n }\n else {\n if (v.hash === hash) {\n continue;\n }\n tx = v;\n break;\n }\n }\n }\n if (tx == null) {\n throw new Error(\"no such tx\");\n }\n if (typeof (tx) === \"string\") {\n return (await this.provider.getTransaction(tx));\n }\n else {\n return tx;\n }\n }\n /**\n * If a **Block** was fetched with a request to include the transactions\n * this will allow synchronous access to those transactions.\n *\n * If the transactions were not prefetched, this will throw.\n */\n getPrefetchedTransaction(indexOrHash) {\n const txs = this.prefetchedTransactions;\n if (typeof (indexOrHash) === \"number\") {\n return txs[indexOrHash];\n }\n indexOrHash = indexOrHash.toLowerCase();\n for (const tx of txs) {\n if (tx.hash === indexOrHash) {\n return tx;\n }\n }\n assertArgument(false, \"no matching transaction\", \"indexOrHash\", indexOrHash);\n }\n /**\n * Returns true if this block been mined. This provides a type guard\n * for all properties on a [[MinedBlock]].\n */\n isMined() { return !!this.hash; }\n /**\n * Returns true if this block is an [[link-eip-2930]] block.\n */\n isLondon() {\n return !!this.baseFeePerGas;\n }\n /**\n * @_ignore:\n */\n orphanedEvent() {\n if (!this.isMined()) {\n throw new Error(\"\");\n }\n return createOrphanedBlockFilter(this);\n }\n}\n//////////////////////\n// Log\n/**\n * A **Log** in Ethereum represents an event that has been included in a\n * transaction using the ``LOG*`` opcodes, which are most commonly used by\n * Solidity's emit for announcing events.\n */\nexport class Log {\n /**\n * The provider connected to the log used to fetch additional details\n * if necessary.\n */\n provider;\n /**\n * The transaction hash of the transaction this log occurred in. Use the\n * [[Log-getTransaction]] to get the [[TransactionResponse]].\n */\n transactionHash;\n /**\n * The block hash of the block this log occurred in. Use the\n * [[Log-getBlock]] to get the [[Block]].\n */\n blockHash;\n /**\n * The block number of the block this log occurred in. It is preferred\n * to use the [[Block-hash]] when fetching the related [[Block]],\n * since in the case of an orphaned block, the block at that height may\n * have changed.\n */\n blockNumber;\n /**\n * If the **Log** represents a block that was removed due to an orphaned\n * block, this will be true.\n *\n * This can only happen within an orphan event listener.\n */\n removed;\n /**\n * The address of the contract that emitted this log.\n */\n address;\n /**\n * The data included in this log when it was emitted.\n */\n data;\n /**\n * The indexed topics included in this log when it was emitted.\n *\n * All topics are included in the bloom filters, so they can be\n * efficiently filtered using the [[Provider-getLogs]] method.\n */\n topics;\n /**\n * The index within the block this log occurred at. This is generally\n * not useful to developers, but can be used with the various roots\n * to proof inclusion within a block.\n */\n index;\n /**\n * The index within the transaction of this log.\n */\n transactionIndex;\n /**\n * @_ignore:\n */\n constructor(log, provider) {\n this.provider = provider;\n const topics = Object.freeze(log.topics.slice());\n defineProperties(this, {\n transactionHash: log.transactionHash,\n blockHash: log.blockHash,\n blockNumber: log.blockNumber,\n removed: log.removed,\n address: log.address,\n data: log.data,\n topics,\n index: log.index,\n transactionIndex: log.transactionIndex,\n });\n }\n /**\n * Returns a JSON-compatible object.\n */\n toJSON() {\n const { address, blockHash, blockNumber, data, index, removed, topics, transactionHash, transactionIndex } = this;\n return {\n _type: \"log\",\n address, blockHash, blockNumber, data, index,\n removed, topics, transactionHash, transactionIndex\n };\n }\n /**\n * Returns the block that this log occurred in.\n */\n async getBlock() {\n const block = await this.provider.getBlock(this.blockHash);\n assert(!!block, \"failed to find transaction\", \"UNKNOWN_ERROR\", {});\n return block;\n }\n /**\n * Returns the transaction that this log occurred in.\n */\n async getTransaction() {\n const tx = await this.provider.getTransaction(this.transactionHash);\n assert(!!tx, \"failed to find transaction\", \"UNKNOWN_ERROR\", {});\n return tx;\n }\n /**\n * Returns the transaction receipt fot the transaction that this\n * log occurred in.\n */\n async getTransactionReceipt() {\n const receipt = await this.provider.getTransactionReceipt(this.transactionHash);\n assert(!!receipt, \"failed to find transaction receipt\", \"UNKNOWN_ERROR\", {});\n return receipt;\n }\n /**\n * @_ignore:\n */\n removedEvent() {\n return createRemovedLogFilter(this);\n }\n}\n//////////////////////\n// Transaction Receipt\n/*\nexport interface LegacyTransactionReceipt {\n byzantium: false;\n status: null;\n root: string;\n}\n\nexport interface ByzantiumTransactionReceipt {\n byzantium: true;\n status: number;\n root: null;\n}\n*/\n/**\n * A **TransactionReceipt** includes additional information about a\n * transaction that is only available after it has been mined.\n */\nexport class TransactionReceipt {\n /**\n * The provider connected to the log used to fetch additional details\n * if necessary.\n */\n provider;\n /**\n * The address the transaction was sent to.\n */\n to;\n /**\n * The sender of the transaction.\n */\n from;\n /**\n * The address of the contract if the transaction was directly\n * responsible for deploying one.\n *\n * This is non-null **only** if the ``to`` is empty and the ``data``\n * was successfully executed as initcode.\n */\n contractAddress;\n /**\n * The transaction hash.\n */\n hash;\n /**\n * The index of this transaction within the block transactions.\n */\n index;\n /**\n * The block hash of the [[Block]] this transaction was included in.\n */\n blockHash;\n /**\n * The block number of the [[Block]] this transaction was included in.\n */\n blockNumber;\n /**\n * The bloom filter bytes that represent all logs that occurred within\n * this transaction. This is generally not useful for most developers,\n * but can be used to validate the included logs.\n */\n logsBloom;\n /**\n * The actual amount of gas used by this transaction.\n *\n * When creating a transaction, the amount of gas that will be used can\n * only be approximated, but the sender must pay the gas fee for the\n * entire gas limit. After the transaction, the difference is refunded.\n */\n gasUsed;\n /**\n * The gas used for BLObs. See [[link-eip-4844]].\n */\n blobGasUsed;\n /**\n * The amount of gas used by all transactions within the block for this\n * and all transactions with a lower ``index``.\n *\n * This is generally not useful for developers but can be used to\n * validate certain aspects of execution.\n */\n cumulativeGasUsed;\n /**\n * The actual gas price used during execution.\n *\n * Due to the complexity of [[link-eip-1559]] this value can only\n * be caluclated after the transaction has been mined, snce the base\n * fee is protocol-enforced.\n */\n gasPrice;\n /**\n * The price paid per BLOB in gas. See [[link-eip-4844]].\n */\n blobGasPrice;\n /**\n * The [[link-eip-2718]] transaction type.\n */\n type;\n //readonly byzantium!: boolean;\n /**\n * The status of this transaction, indicating success (i.e. ``1``) or\n * a revert (i.e. ``0``).\n *\n * This is available in post-byzantium blocks, but some backends may\n * backfill this value.\n */\n status;\n /**\n * The root hash of this transaction.\n *\n * This is no present and was only included in pre-byzantium blocks, but\n * could be used to validate certain parts of the receipt.\n */\n root;\n #logs;\n /**\n * @_ignore:\n */\n constructor(tx, provider) {\n this.#logs = Object.freeze(tx.logs.map((log) => {\n return new Log(log, provider);\n }));\n let gasPrice = BN_0;\n if (tx.effectiveGasPrice != null) {\n gasPrice = tx.effectiveGasPrice;\n }\n else if (tx.gasPrice != null) {\n gasPrice = tx.gasPrice;\n }\n defineProperties(this, {\n provider,\n to: tx.to,\n from: tx.from,\n contractAddress: tx.contractAddress,\n hash: tx.hash,\n index: tx.index,\n blockHash: tx.blockHash,\n blockNumber: tx.blockNumber,\n logsBloom: tx.logsBloom,\n gasUsed: tx.gasUsed,\n cumulativeGasUsed: tx.cumulativeGasUsed,\n blobGasUsed: tx.blobGasUsed,\n gasPrice,\n blobGasPrice: tx.blobGasPrice,\n type: tx.type,\n //byzantium: tx.byzantium,\n status: tx.status,\n root: tx.root\n });\n }\n /**\n * The logs for this transaction.\n */\n get logs() { return this.#logs; }\n /**\n * Returns a JSON-compatible representation.\n */\n toJSON() {\n const { to, from, contractAddress, hash, index, blockHash, blockNumber, logsBloom, logs, //byzantium, \n status, root } = this;\n return {\n _type: \"TransactionReceipt\",\n blockHash, blockNumber,\n //byzantium, \n contractAddress,\n cumulativeGasUsed: toJson(this.cumulativeGasUsed),\n from,\n gasPrice: toJson(this.gasPrice),\n blobGasUsed: toJson(this.blobGasUsed),\n blobGasPrice: toJson(this.blobGasPrice),\n gasUsed: toJson(this.gasUsed),\n hash, index, logs, logsBloom, root, status, to\n };\n }\n /**\n * @_ignore:\n */\n get length() { return this.logs.length; }\n [Symbol.iterator]() {\n let index = 0;\n return {\n next: () => {\n if (index < this.length) {\n return { value: this.logs[index++], done: false };\n }\n return { value: undefined, done: true };\n }\n };\n }\n /**\n * The total fee for this transaction, in wei.\n */\n get fee() {\n return this.gasUsed * this.gasPrice;\n }\n /**\n * Resolves to the block this transaction occurred in.\n */\n async getBlock() {\n const block = await this.provider.getBlock(this.blockHash);\n if (block == null) {\n throw new Error(\"TODO\");\n }\n return block;\n }\n /**\n * Resolves to the transaction this transaction occurred in.\n */\n async getTransaction() {\n const tx = await this.provider.getTransaction(this.hash);\n if (tx == null) {\n throw new Error(\"TODO\");\n }\n return tx;\n }\n /**\n * Resolves to the return value of the execution of this transaction.\n *\n * Support for this feature is limited, as it requires an archive node\n * with the ``debug_`` or ``trace_`` API enabled.\n */\n async getResult() {\n return (await this.provider.getTransactionResult(this.hash));\n }\n /**\n * Resolves to the number of confirmations this transaction has.\n */\n async confirmations() {\n return (await this.provider.getBlockNumber()) - this.blockNumber + 1;\n }\n /**\n * @_ignore:\n */\n removedEvent() {\n return createRemovedTransactionFilter(this);\n }\n /**\n * @_ignore:\n */\n reorderedEvent(other) {\n assert(!other || other.isMined(), \"unmined 'other' transction cannot be orphaned\", \"UNSUPPORTED_OPERATION\", { operation: \"reorderedEvent(other)\" });\n return createReorderedTransactionFilter(this, other);\n }\n}\n/**\n * A **TransactionResponse** includes all properties about a transaction\n * that was sent to the network, which may or may not be included in a\n * block.\n *\n * The [[TransactionResponse-isMined]] can be used to check if the\n * transaction has been mined as well as type guard that the otherwise\n * possibly ``null`` properties are defined.\n */\nexport class TransactionResponse {\n /**\n * The provider this is connected to, which will influence how its\n * methods will resolve its async inspection methods.\n */\n provider;\n /**\n * The block number of the block that this transaction was included in.\n *\n * This is ``null`` for pending transactions.\n */\n blockNumber;\n /**\n * The blockHash of the block that this transaction was included in.\n *\n * This is ``null`` for pending transactions.\n */\n blockHash;\n /**\n * The index within the block that this transaction resides at.\n */\n index;\n /**\n * The transaction hash.\n */\n hash;\n /**\n * The [[link-eip-2718]] transaction envelope type. This is\n * ``0`` for legacy transactions types.\n */\n type;\n /**\n * The receiver of this transaction.\n *\n * If ``null``, then the transaction is an initcode transaction.\n * This means the result of executing the [[data]] will be deployed\n * as a new contract on chain (assuming it does not revert) and the\n * address may be computed using [[getCreateAddress]].\n */\n to;\n /**\n * The sender of this transaction. It is implicitly computed\n * from the transaction pre-image hash (as the digest) and the\n * [[signature]] using ecrecover.\n */\n from;\n /**\n * The nonce, which is used to prevent replay attacks and offer\n * a method to ensure transactions from a given sender are explicitly\n * ordered.\n *\n * When sending a transaction, this must be equal to the number of\n * transactions ever sent by [[from]].\n */\n nonce;\n /**\n * The maximum units of gas this transaction can consume. If execution\n * exceeds this, the entries transaction is reverted and the sender\n * is charged for the full amount, despite not state changes being made.\n */\n gasLimit;\n /**\n * The gas price can have various values, depending on the network.\n *\n * In modern networks, for transactions that are included this is\n * the //effective gas price// (the fee per gas that was actually\n * charged), while for transactions that have not been included yet\n * is the [[maxFeePerGas]].\n *\n * For legacy transactions, or transactions on legacy networks, this\n * is the fee that will be charged per unit of gas the transaction\n * consumes.\n */\n gasPrice;\n /**\n * The maximum priority fee (per unit of gas) to allow a\n * validator to charge the sender. This is inclusive of the\n * [[maxFeeFeePerGas]].\n */\n maxPriorityFeePerGas;\n /**\n * The maximum fee (per unit of gas) to allow this transaction\n * to charge the sender.\n */\n maxFeePerGas;\n /**\n * The [[link-eip-4844]] max fee per BLOb gas.\n */\n maxFeePerBlobGas;\n /**\n * The data.\n */\n data;\n /**\n * The value, in wei. Use [[formatEther]] to format this value\n * as ether.\n */\n value;\n /**\n * The chain ID.\n */\n chainId;\n /**\n * The signature.\n */\n signature;\n /**\n * The [[link-eip-2930]] access list for transaction types that\n * support it, otherwise ``null``.\n */\n accessList;\n /**\n * The [[link-eip-4844]] BLOb versioned hashes.\n */\n blobVersionedHashes;\n #startBlock;\n /**\n * @_ignore:\n */\n constructor(tx, provider) {\n this.provider = provider;\n this.blockNumber = (tx.blockNumber != null) ? tx.blockNumber : null;\n this.blockHash = (tx.blockHash != null) ? tx.blockHash : null;\n this.hash = tx.hash;\n this.index = tx.index;\n this.type = tx.type;\n this.from = tx.from;\n this.to = tx.to || null;\n this.gasLimit = tx.gasLimit;\n this.nonce = tx.nonce;\n this.data = tx.data;\n this.value = tx.value;\n this.gasPrice = tx.gasPrice;\n this.maxPriorityFeePerGas = (tx.maxPriorityFeePerGas != null) ? tx.maxPriorityFeePerGas : null;\n this.maxFeePerGas = (tx.maxFeePerGas != null) ? tx.maxFeePerGas : null;\n this.maxFeePerBlobGas = (tx.maxFeePerBlobGas != null) ? tx.maxFeePerBlobGas : null;\n this.chainId = tx.chainId;\n this.signature = tx.signature;\n this.accessList = (tx.accessList != null) ? tx.accessList : null;\n this.blobVersionedHashes = (tx.blobVersionedHashes != null) ? tx.blobVersionedHashes : null;\n this.#startBlock = -1;\n }\n /**\n * Returns a JSON-compatible representation of this transaction.\n */\n toJSON() {\n const { blockNumber, blockHash, index, hash, type, to, from, nonce, data, signature, accessList, blobVersionedHashes } = this;\n return {\n _type: \"TransactionResponse\",\n accessList, blockNumber, blockHash,\n blobVersionedHashes,\n chainId: toJson(this.chainId),\n data, from,\n gasLimit: toJson(this.gasLimit),\n gasPrice: toJson(this.gasPrice),\n hash,\n maxFeePerGas: toJson(this.maxFeePerGas),\n maxPriorityFeePerGas: toJson(this.maxPriorityFeePerGas),\n maxFeePerBlobGas: toJson(this.maxFeePerBlobGas),\n nonce, signature, to, index, type,\n value: toJson(this.value),\n };\n }\n /**\n * Resolves to the Block that this transaction was included in.\n *\n * This will return null if the transaction has not been included yet.\n */\n async getBlock() {\n let blockNumber = this.blockNumber;\n if (blockNumber == null) {\n const tx = await this.getTransaction();\n if (tx) {\n blockNumber = tx.blockNumber;\n }\n }\n if (blockNumber == null) {\n return null;\n }\n const block = this.provider.getBlock(blockNumber);\n if (block == null) {\n throw new Error(\"TODO\");\n }\n return block;\n }\n /**\n * Resolves to this transaction being re-requested from the\n * provider. This can be used if you have an unmined transaction\n * and wish to get an up-to-date populated instance.\n */\n async getTransaction() {\n return this.provider.getTransaction(this.hash);\n }\n /**\n * Resolve to the number of confirmations this transaction has.\n */\n async confirmations() {\n if (this.blockNumber == null) {\n const { tx, blockNumber } = await resolveProperties({\n tx: this.getTransaction(),\n blockNumber: this.provider.getBlockNumber()\n });\n // Not mined yet...\n if (tx == null || tx.blockNumber == null) {\n return 0;\n }\n return blockNumber - tx.blockNumber + 1;\n }\n const blockNumber = await this.provider.getBlockNumber();\n return blockNumber - this.blockNumber + 1;\n }\n /**\n * Resolves once this transaction has been mined and has\n * %%confirms%% blocks including it (default: ``1``) with an\n * optional %%timeout%%.\n *\n * This can resolve to ``null`` only if %%confirms%% is ``0``\n * and the transaction has not been mined, otherwise this will\n * wait until enough confirmations have completed.\n */\n async wait(_confirms, _timeout) {\n const confirms = (_confirms == null) ? 1 : _confirms;\n const timeout = (_timeout == null) ? 0 : _timeout;\n let startBlock = this.#startBlock;\n let nextScan = -1;\n let stopScanning = (startBlock === -1) ? true : false;\n const checkReplacement = async () => {\n // Get the current transaction count for this sender\n if (stopScanning) {\n return null;\n }\n const { blockNumber, nonce } = await resolveProperties({\n blockNumber: this.provider.getBlockNumber(),\n nonce: this.provider.getTransactionCount(this.from)\n });\n // No transaction or our nonce has not been mined yet; but we\n // can start scanning later when we do start\n if (nonce < this.nonce) {\n startBlock = blockNumber;\n return;\n }\n // We were mined; no replacement\n if (stopScanning) {\n return null;\n }\n const mined = await this.getTransaction();\n if (mined && mined.blockNumber != null) {\n return;\n }\n // We were replaced; start scanning for that transaction\n // Starting to scan; look back a few extra blocks for safety\n if (nextScan === -1) {\n nextScan = startBlock - 3;\n if (nextScan < this.#startBlock) {\n nextScan = this.#startBlock;\n }\n }\n while (nextScan <= blockNumber) {\n // Get the next block to scan\n if (stopScanning) {\n return null;\n }\n const block = await this.provider.getBlock(nextScan, true);\n // This should not happen; but we'll try again shortly\n if (block == null) {\n return;\n }\n // We were mined; no replacement\n for (const hash of block) {\n if (hash === this.hash) {\n return;\n }\n }\n // Search for the transaction that replaced us\n for (let i = 0; i < block.length; i++) {\n const tx = await block.getTransaction(i);\n if (tx.from === this.from && tx.nonce === this.nonce) {\n // Get the receipt\n if (stopScanning) {\n return null;\n }\n const receipt = await this.provider.getTransactionReceipt(tx.hash);\n // This should not happen; but we'll try again shortly\n if (receipt == null) {\n return;\n }\n // We will retry this on the next block (this case could be optimized)\n if ((blockNumber - receipt.blockNumber + 1) < confirms) {\n return;\n }\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === this.data && tx.to === this.to && tx.value === this.value) {\n reason = \"repriced\";\n }\n else if (tx.data === \"0x\" && tx.from === tx.to && tx.value === BN_0) {\n reason = \"cancelled\";\n }\n assert(false, \"transaction was replaced\", \"TRANSACTION_REPLACED\", {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: tx.replaceableTransaction(startBlock),\n hash: tx.hash,\n receipt\n });\n }\n }\n nextScan++;\n }\n return;\n };\n const checkReceipt = (receipt) => {\n if (receipt == null || receipt.status !== 0) {\n return receipt;\n }\n assert(false, \"transaction execution reverted\", \"CALL_EXCEPTION\", {\n action: \"sendTransaction\",\n data: null, reason: null, invocation: null, revert: null,\n transaction: {\n to: receipt.to,\n from: receipt.from,\n data: \"\" // @TODO: in v7, split out sendTransaction properties\n }, receipt\n });\n };\n const receipt = await this.provider.getTransactionReceipt(this.hash);\n if (confirms === 0) {\n return checkReceipt(receipt);\n }\n if (receipt) {\n if ((await receipt.confirmations()) >= confirms) {\n return checkReceipt(receipt);\n }\n }\n else {\n // Check for a replacement; throws if a replacement was found\n await checkReplacement();\n // Allow null only when the confirms is 0\n if (confirms === 0) {\n return null;\n }\n }\n const waiter = new Promise((resolve, reject) => {\n // List of things to cancel when we have a result (one way or the other)\n const cancellers = [];\n const cancel = () => { cancellers.forEach((c) => c()); };\n // On cancel, stop scanning for replacements\n cancellers.push(() => { stopScanning = true; });\n // Set up any timeout requested\n if (timeout > 0) {\n const timer = setTimeout(() => {\n cancel();\n reject(makeError(\"wait for transaction timeout\", \"TIMEOUT\"));\n }, timeout);\n cancellers.push(() => { clearTimeout(timer); });\n }\n const txListener = async (receipt) => {\n // Done; return it!\n if ((await receipt.confirmations()) >= confirms) {\n cancel();\n try {\n resolve(checkReceipt(receipt));\n }\n catch (error) {\n reject(error);\n }\n }\n };\n cancellers.push(() => { this.provider.off(this.hash, txListener); });\n this.provider.on(this.hash, txListener);\n // We support replacement detection; start checking\n if (startBlock >= 0) {\n const replaceListener = async () => {\n try {\n // Check for a replacement; this throws only if one is found\n await checkReplacement();\n }\n catch (error) {\n // We were replaced (with enough confirms); re-throw the error\n if (isError(error, \"TRANSACTION_REPLACED\")) {\n cancel();\n reject(error);\n return;\n }\n }\n // Rescheudle a check on the next block\n if (!stopScanning) {\n this.provider.once(\"block\", replaceListener);\n }\n };\n cancellers.push(() => { this.provider.off(\"block\", replaceListener); });\n this.provider.once(\"block\", replaceListener);\n }\n });\n return await waiter;\n }\n /**\n * Returns ``true`` if this transaction has been included.\n *\n * This is effective only as of the time the TransactionResponse\n * was instantiated. To get up-to-date information, use\n * [[getTransaction]].\n *\n * This provides a Type Guard that this transaction will have\n * non-null property values for properties that are null for\n * unmined transactions.\n */\n isMined() {\n return (this.blockHash != null);\n }\n /**\n * Returns true if the transaction is a legacy (i.e. ``type == 0``)\n * transaction.\n *\n * This provides a Type Guard that this transaction will have\n * the ``null``-ness for hardfork-specific properties set correctly.\n */\n isLegacy() {\n return (this.type === 0);\n }\n /**\n * Returns true if the transaction is a Berlin (i.e. ``type == 1``)\n * transaction. See [[link-eip-2070]].\n *\n * This provides a Type Guard that this transaction will have\n * the ``null``-ness for hardfork-specific properties set correctly.\n */\n isBerlin() {\n return (this.type === 1);\n }\n /**\n * Returns true if the transaction is a London (i.e. ``type == 2``)\n * transaction. See [[link-eip-1559]].\n *\n * This provides a Type Guard that this transaction will have\n * the ``null``-ness for hardfork-specific properties set correctly.\n */\n isLondon() {\n return (this.type === 2);\n }\n /**\n * Returns true if hte transaction is a Cancun (i.e. ``type == 3``)\n * transaction. See [[link-eip-4844]].\n */\n isCancun() {\n return (this.type === 3);\n }\n /**\n * Returns a filter which can be used to listen for orphan events\n * that evict this transaction.\n */\n removedEvent() {\n assert(this.isMined(), \"unmined transaction canot be orphaned\", \"UNSUPPORTED_OPERATION\", { operation: \"removeEvent()\" });\n return createRemovedTransactionFilter(this);\n }\n /**\n * Returns a filter which can be used to listen for orphan events\n * that re-order this event against %%other%%.\n */\n reorderedEvent(other) {\n assert(this.isMined(), \"unmined transaction canot be orphaned\", \"UNSUPPORTED_OPERATION\", { operation: \"removeEvent()\" });\n assert(!other || other.isMined(), \"unmined 'other' transaction canot be orphaned\", \"UNSUPPORTED_OPERATION\", { operation: \"removeEvent()\" });\n return createReorderedTransactionFilter(this, other);\n }\n /**\n * Returns a new TransactionResponse instance which has the ability to\n * detect (and throw an error) if the transaction is replaced, which\n * will begin scanning at %%startBlock%%.\n *\n * This should generally not be used by developers and is intended\n * primarily for internal use. Setting an incorrect %%startBlock%% can\n * have devastating performance consequences if used incorrectly.\n */\n replaceableTransaction(startBlock) {\n assertArgument(Number.isInteger(startBlock) && startBlock >= 0, \"invalid startBlock\", \"startBlock\", startBlock);\n const tx = new TransactionResponse(this, this.provider);\n tx.#startBlock = startBlock;\n return tx;\n }\n}\nfunction createOrphanedBlockFilter(block) {\n return { orphan: \"drop-block\", hash: block.hash, number: block.number };\n}\nfunction createReorderedTransactionFilter(tx, other) {\n return { orphan: \"reorder-transaction\", tx, other };\n}\nfunction createRemovedTransactionFilter(tx) {\n return { orphan: \"drop-transaction\", tx };\n}\nfunction createRemovedLogFilter(log) {\n return { orphan: \"drop-log\", log: {\n transactionHash: log.transactionHash,\n blockHash: log.blockHash,\n blockNumber: log.blockNumber,\n address: log.address,\n data: log.data,\n topics: Object.freeze(log.topics.slice()),\n index: log.index\n } };\n}\n//# sourceMappingURL=provider.js.map","// import from provider.ts instead of index.ts to prevent circular dep\n// from EtherscanProvider\nimport { Log, TransactionReceipt, TransactionResponse } from \"../providers/provider.js\";\nimport { defineProperties, EventPayload } from \"../utils/index.js\";\n/**\n * An **EventLog** contains additional properties parsed from the [[Log]].\n */\nexport class EventLog extends Log {\n /**\n * The Contract Interface.\n */\n interface;\n /**\n * The matching event.\n */\n fragment;\n /**\n * The parsed arguments passed to the event by ``emit``.\n */\n args;\n /**\n * @_ignore:\n */\n constructor(log, iface, fragment) {\n super(log, log.provider);\n const args = iface.decodeEventLog(fragment, log.data, log.topics);\n defineProperties(this, { args, fragment, interface: iface });\n }\n /**\n * The name of the event.\n */\n get eventName() { return this.fragment.name; }\n /**\n * The signature of the event.\n */\n get eventSignature() { return this.fragment.format(); }\n}\n/**\n * An **EventLog** contains additional properties parsed from the [[Log]].\n */\nexport class UndecodedEventLog extends Log {\n /**\n * The error encounted when trying to decode the log.\n */\n error;\n /**\n * @_ignore:\n */\n constructor(log, error) {\n super(log, log.provider);\n defineProperties(this, { error });\n }\n}\n/**\n * A **ContractTransactionReceipt** includes the parsed logs from a\n * [[TransactionReceipt]].\n */\nexport class ContractTransactionReceipt extends TransactionReceipt {\n #iface;\n /**\n * @_ignore:\n */\n constructor(iface, provider, tx) {\n super(tx, provider);\n this.#iface = iface;\n }\n /**\n * The parsed logs for any [[Log]] which has a matching event in the\n * Contract ABI.\n */\n get logs() {\n return super.logs.map((log) => {\n const fragment = log.topics.length ? this.#iface.getEvent(log.topics[0]) : null;\n if (fragment) {\n try {\n return new EventLog(log, this.#iface, fragment);\n }\n catch (error) {\n return new UndecodedEventLog(log, error);\n }\n }\n return log;\n });\n }\n}\n/**\n * A **ContractTransactionResponse** will return a\n * [[ContractTransactionReceipt]] when waited on.\n */\nexport class ContractTransactionResponse extends TransactionResponse {\n #iface;\n /**\n * @_ignore:\n */\n constructor(iface, provider, tx) {\n super(tx, provider);\n this.#iface = iface;\n }\n /**\n * Resolves once this transaction has been mined and has\n * %%confirms%% blocks including it (default: ``1``) with an\n * optional %%timeout%%.\n *\n * This can resolve to ``null`` only if %%confirms%% is ``0``\n * and the transaction has not been mined, otherwise this will\n * wait until enough confirmations have completed.\n */\n async wait(confirms, timeout) {\n const receipt = await super.wait(confirms, timeout);\n if (receipt == null) {\n return null;\n }\n return new ContractTransactionReceipt(this.#iface, this.provider, receipt);\n }\n}\n/**\n * A **ContractUnknownEventPayload** is included as the last parameter to\n * Contract Events when the event does not match any events in the ABI.\n */\nexport class ContractUnknownEventPayload extends EventPayload {\n /**\n * The log with no matching events.\n */\n log;\n /**\n * @_event:\n */\n constructor(contract, listener, filter, log) {\n super(contract, listener, filter);\n defineProperties(this, { log });\n }\n /**\n * Resolves to the block the event occured in.\n */\n async getBlock() {\n return await this.log.getBlock();\n }\n /**\n * Resolves to the transaction the event occured in.\n */\n async getTransaction() {\n return await this.log.getTransaction();\n }\n /**\n * Resolves to the transaction receipt the event occured in.\n */\n async getTransactionReceipt() {\n return await this.log.getTransactionReceipt();\n }\n}\n/**\n * A **ContractEventPayload** is included as the last parameter to\n * Contract Events when the event is known.\n */\nexport class ContractEventPayload extends ContractUnknownEventPayload {\n /**\n * @_ignore:\n */\n constructor(contract, listener, filter, fragment, _log) {\n super(contract, listener, filter, new EventLog(_log, contract.interface, fragment));\n const args = contract.interface.decodeEventLog(fragment, this.log.data, this.log.topics);\n defineProperties(this, { args, fragment });\n }\n /**\n * The event name.\n */\n get eventName() {\n return this.fragment.name;\n }\n /**\n * The event signature.\n */\n get eventSignature() {\n return this.fragment.format();\n }\n}\n//# sourceMappingURL=wrappers.js.map","import { Interface, Typed } from \"../abi/index.js\";\nimport { isAddressable, resolveAddress } from \"../address/index.js\";\n// import from provider.ts instead of index.ts to prevent circular dep\n// from EtherscanProvider\nimport { copyRequest, Log } from \"../providers/provider.js\";\nimport { defineProperties, getBigInt, isCallException, isHexString, resolveProperties, isError, makeError, assert, assertArgument } from \"../utils/index.js\";\nimport { ContractEventPayload, ContractUnknownEventPayload, ContractTransactionResponse, EventLog, UndecodedEventLog } from \"./wrappers.js\";\nconst BN_0 = BigInt(0);\nfunction canCall(value) {\n return (value && typeof (value.call) === \"function\");\n}\nfunction canEstimate(value) {\n return (value && typeof (value.estimateGas) === \"function\");\n}\nfunction canResolve(value) {\n return (value && typeof (value.resolveName) === \"function\");\n}\nfunction canSend(value) {\n return (value && typeof (value.sendTransaction) === \"function\");\n}\nfunction getResolver(value) {\n if (value != null) {\n if (canResolve(value)) {\n return value;\n }\n if (value.provider) {\n return value.provider;\n }\n }\n return undefined;\n}\nclass PreparedTopicFilter {\n #filter;\n fragment;\n constructor(contract, fragment, args) {\n defineProperties(this, { fragment });\n if (fragment.inputs.length < args.length) {\n throw new Error(\"too many arguments\");\n }\n // Recursively descend into args and resolve any addresses\n const runner = getRunner(contract.runner, \"resolveName\");\n const resolver = canResolve(runner) ? runner : null;\n this.#filter = (async function () {\n const resolvedArgs = await Promise.all(fragment.inputs.map((param, index) => {\n const arg = args[index];\n if (arg == null) {\n return null;\n }\n return param.walkAsync(args[index], (type, value) => {\n if (type === \"address\") {\n if (Array.isArray(value)) {\n return Promise.all(value.map((v) => resolveAddress(v, resolver)));\n }\n return resolveAddress(value, resolver);\n }\n return value;\n });\n }));\n return contract.interface.encodeFilterTopics(fragment, resolvedArgs);\n })();\n }\n getTopicFilter() {\n return this.#filter;\n }\n}\n// A = Arguments passed in as a tuple\n// R = The result type of the call (i.e. if only one return type,\n// the qualified type, otherwise Result)\n// D = The type the default call will return (i.e. R for view/pure,\n// TransactionResponse otherwise)\n//export interface ContractMethod<A extends Array<any> = Array<any>, R = any, D extends R | ContractTransactionResponse = ContractTransactionResponse> {\nfunction getRunner(value, feature) {\n if (value == null) {\n return null;\n }\n if (typeof (value[feature]) === \"function\") {\n return value;\n }\n if (value.provider && typeof (value.provider[feature]) === \"function\") {\n return value.provider;\n }\n return null;\n}\nfunction getProvider(value) {\n if (value == null) {\n return null;\n }\n return value.provider || null;\n}\n/**\n * @_ignore:\n */\nexport async function copyOverrides(arg, allowed) {\n // Make sure the overrides passed in are a valid overrides object\n const _overrides = Typed.dereference(arg, \"overrides\");\n assertArgument(typeof (_overrides) === \"object\", \"invalid overrides parameter\", \"overrides\", arg);\n // Create a shallow copy (we'll deep-ify anything needed during normalizing)\n const overrides = copyRequest(_overrides);\n assertArgument(overrides.to == null || (allowed || []).indexOf(\"to\") >= 0, \"cannot override to\", \"overrides.to\", overrides.to);\n assertArgument(overrides.data == null || (allowed || []).indexOf(\"data\") >= 0, \"cannot override data\", \"overrides.data\", overrides.data);\n // Resolve any from\n if (overrides.from) {\n overrides.from = overrides.from;\n }\n return overrides;\n}\n/**\n * @_ignore:\n */\nexport async function resolveArgs(_runner, inputs, args) {\n // Recursively descend into args and resolve any addresses\n const runner = getRunner(_runner, \"resolveName\");\n const resolver = canResolve(runner) ? runner : null;\n return await Promise.all(inputs.map((param, index) => {\n return param.walkAsync(args[index], (type, value) => {\n value = Typed.dereference(value, type);\n if (type === \"address\") {\n return resolveAddress(value, resolver);\n }\n return value;\n });\n }));\n}\nfunction buildWrappedFallback(contract) {\n const populateTransaction = async function (overrides) {\n // If an overrides was passed in, copy it and normalize the values\n const tx = (await copyOverrides(overrides, [\"data\"]));\n tx.to = await contract.getAddress();\n if (tx.from) {\n tx.from = await resolveAddress(tx.from, getResolver(contract.runner));\n }\n const iface = contract.interface;\n const noValue = (getBigInt((tx.value || BN_0), \"overrides.value\") === BN_0);\n const noData = ((tx.data || \"0x\") === \"0x\");\n if (iface.fallback && !iface.fallback.payable && iface.receive && !noData && !noValue) {\n assertArgument(false, \"cannot send data to receive or send value to non-payable fallback\", \"overrides\", overrides);\n }\n assertArgument(iface.fallback || noData, \"cannot send data to receive-only contract\", \"overrides.data\", tx.data);\n // Only allow payable contracts to set non-zero value\n const payable = iface.receive || (iface.fallback && iface.fallback.payable);\n assertArgument(payable || noValue, \"cannot send value to non-payable fallback\", \"overrides.value\", tx.value);\n // Only allow fallback contracts to set non-empty data\n assertArgument(iface.fallback || noData, \"cannot send data to receive-only contract\", \"overrides.data\", tx.data);\n return tx;\n };\n const staticCall = async function (overrides) {\n const runner = getRunner(contract.runner, \"call\");\n assert(canCall(runner), \"contract runner does not support calling\", \"UNSUPPORTED_OPERATION\", { operation: \"call\" });\n const tx = await populateTransaction(overrides);\n try {\n return await runner.call(tx);\n }\n catch (error) {\n if (isCallException(error) && error.data) {\n throw contract.interface.makeError(error.data, tx);\n }\n throw error;\n }\n };\n const send = async function (overrides) {\n const runner = contract.runner;\n assert(canSend(runner), \"contract runner does not support sending transactions\", \"UNSUPPORTED_OPERATION\", { operation: \"sendTransaction\" });\n const tx = await runner.sendTransaction(await populateTransaction(overrides));\n const provider = getProvider(contract.runner);\n // @TODO: the provider can be null; make a custom dummy provider that will throw a\n // meaningful error\n return new ContractTransactionResponse(contract.interface, provider, tx);\n };\n const estimateGas = async function (overrides) {\n const runner = getRunner(contract.runner, \"estimateGas\");\n assert(canEstimate(runner), \"contract runner does not support gas estimation\", \"UNSUPPORTED_OPERATION\", { operation: \"estimateGas\" });\n return await runner.estimateGas(await populateTransaction(overrides));\n };\n const method = async (overrides) => {\n return await send(overrides);\n };\n defineProperties(method, {\n _contract: contract,\n estimateGas,\n populateTransaction,\n send, staticCall\n });\n return method;\n}\nfunction buildWrappedMethod(contract, key) {\n const getFragment = function (...args) {\n const fragment = contract.interface.getFunction(key, args);\n assert(fragment, \"no matching fragment\", \"UNSUPPORTED_OPERATION\", {\n operation: \"fragment\",\n info: { key, args }\n });\n return fragment;\n };\n const populateTransaction = async function (...args) {\n const fragment = getFragment(...args);\n // If an overrides was passed in, copy it and normalize the values\n let overrides = {};\n if (fragment.inputs.length + 1 === args.length) {\n overrides = await copyOverrides(args.pop());\n if (overrides.from) {\n overrides.from = await resolveAddress(overrides.from, getResolver(contract.runner));\n }\n }\n if (fragment.inputs.length !== args.length) {\n throw new Error(\"internal error: fragment inputs doesn't match arguments; should not happen\");\n }\n const resolvedArgs = await resolveArgs(contract.runner, fragment.inputs, args);\n return Object.assign({}, overrides, await resolveProperties({\n to: contract.getAddress(),\n data: contract.interface.encodeFunctionData(fragment, resolvedArgs)\n }));\n };\n const staticCall = async function (...args) {\n const result = await staticCallResult(...args);\n if (result.length === 1) {\n return result[0];\n }\n return result;\n };\n const send = async function (...args) {\n const runner = contract.runner;\n assert(canSend(runner), \"contract runner does not support sending transactions\", \"UNSUPPORTED_OPERATION\", { operation: \"sendTransaction\" });\n const tx = await runner.sendTransaction(await populateTransaction(...args));\n const provider = getProvider(contract.runner);\n // @TODO: the provider can be null; make a custom dummy provider that will throw a\n // meaningful error\n return new ContractTransactionResponse(contract.interface, provider, tx);\n };\n const estimateGas = async function (...args) {\n const runner = getRunner(contract.runner, \"estimateGas\");\n assert(canEstimate(runner), \"contract runner does not support gas estimation\", \"UNSUPPORTED_OPERATION\", { operation: \"estimateGas\" });\n return await runner.estimateGas(await populateTransaction(...args));\n };\n const staticCallResult = async function (...args) {\n const runner = getRunner(contract.runner, \"call\");\n assert(canCall(runner), \"contract runner does not support calling\", \"UNSUPPORTED_OPERATION\", { operation: \"call\" });\n const tx = await populateTransaction(...args);\n let result = \"0x\";\n try {\n result = await runner.call(tx);\n }\n catch (error) {\n if (isCallException(error) && error.data) {\n throw contract.interface.makeError(error.data, tx);\n }\n throw error;\n }\n const fragment = getFragment(...args);\n return contract.interface.decodeFunctionResult(fragment, result);\n };\n const method = async (...args) => {\n const fragment = getFragment(...args);\n if (fragment.constant) {\n return await staticCall(...args);\n }\n return await send(...args);\n };\n defineProperties(method, {\n name: contract.interface.getFunctionName(key),\n _contract: contract, _key: key,\n getFragment,\n estimateGas,\n populateTransaction,\n send, staticCall, staticCallResult,\n });\n // Only works on non-ambiguous keys (refined fragment is always non-ambiguous)\n Object.defineProperty(method, \"fragment\", {\n configurable: false,\n enumerable: true,\n get: () => {\n const fragment = contract.interface.getFunction(key);\n assert(fragment, \"no matching fragment\", \"UNSUPPORTED_OPERATION\", {\n operation: \"fragment\",\n info: { key }\n });\n return fragment;\n }\n });\n return method;\n}\nfunction buildWrappedEvent(contract, key) {\n const getFragment = function (...args) {\n const fragment = contract.interface.getEvent(key, args);\n assert(fragment, \"no matching fragment\", \"UNSUPPORTED_OPERATION\", {\n operation: \"fragment\",\n info: { key, args }\n });\n return fragment;\n };\n const method = function (...args) {\n return new PreparedTopicFilter(contract, getFragment(...args), args);\n };\n defineProperties(method, {\n name: contract.interface.getEventName(key),\n _contract: contract, _key: key,\n getFragment\n });\n // Only works on non-ambiguous keys (refined fragment is always non-ambiguous)\n Object.defineProperty(method, \"fragment\", {\n configurable: false,\n enumerable: true,\n get: () => {\n const fragment = contract.interface.getEvent(key);\n assert(fragment, \"no matching fragment\", \"UNSUPPORTED_OPERATION\", {\n operation: \"fragment\",\n info: { key }\n });\n return fragment;\n }\n });\n return method;\n}\n// The combination of TypeScrype, Private Fields and Proxies makes\n// the world go boom; so we hide variables with some trickery keeping\n// a symbol attached to each BaseContract which its sub-class (even\n// via a Proxy) can reach and use to look up its internal values.\nconst internal = Symbol.for(\"_ethersInternal_contract\");\nconst internalValues = new WeakMap();\nfunction setInternal(contract, values) {\n internalValues.set(contract[internal], values);\n}\nfunction getInternal(contract) {\n return internalValues.get(contract[internal]);\n}\nfunction isDeferred(value) {\n return (value && typeof (value) === \"object\" && (\"getTopicFilter\" in value) &&\n (typeof (value.getTopicFilter) === \"function\") && value.fragment);\n}\nasync function getSubInfo(contract, event) {\n let topics;\n let fragment = null;\n // Convert named events to topicHash and get the fragment for\n // events which need deconstructing.\n if (Array.isArray(event)) {\n const topicHashify = function (name) {\n if (isHexString(name, 32)) {\n return name;\n }\n const fragment = contract.interface.getEvent(name);\n assertArgument(fragment, \"unknown fragment\", \"name\", name);\n return fragment.topicHash;\n };\n // Array of Topics and Names; e.g. `[ \"0x1234...89ab\", \"Transfer(address)\" ]`\n topics = event.map((e) => {\n if (e == null) {\n return null;\n }\n if (Array.isArray(e)) {\n return e.map(topicHashify);\n }\n return topicHashify(e);\n });\n }\n else if (event === \"*\") {\n topics = [null];\n }\n else if (typeof (event) === \"string\") {\n if (isHexString(event, 32)) {\n // Topic Hash\n topics = [event];\n }\n else {\n // Name or Signature; e.g. `\"Transfer\", `\"Transfer(address)\"`\n fragment = contract.interface.getEvent(event);\n assertArgument(fragment, \"unknown fragment\", \"event\", event);\n topics = [fragment.topicHash];\n }\n }\n else if (isDeferred(event)) {\n // Deferred Topic Filter; e.g. `contract.filter.Transfer(from)`\n topics = await event.getTopicFilter();\n }\n else if (\"fragment\" in event) {\n // ContractEvent; e.g. `contract.filter.Transfer`\n fragment = event.fragment;\n topics = [fragment.topicHash];\n }\n else {\n assertArgument(false, \"unknown event name\", \"event\", event);\n }\n // Normalize topics and sort TopicSets\n topics = topics.map((t) => {\n if (t == null) {\n return null;\n }\n if (Array.isArray(t)) {\n const items = Array.from(new Set(t.map((t) => t.toLowerCase())).values());\n if (items.length === 1) {\n return items[0];\n }\n items.sort();\n return items;\n }\n return t.toLowerCase();\n });\n const tag = topics.map((t) => {\n if (t == null) {\n return \"null\";\n }\n if (Array.isArray(t)) {\n return t.join(\"|\");\n }\n return t;\n }).join(\"&\");\n return { fragment, tag, topics };\n}\nasync function hasSub(contract, event) {\n const { subs } = getInternal(contract);\n return subs.get((await getSubInfo(contract, event)).tag) || null;\n}\nasync function getSub(contract, operation, event) {\n // Make sure our runner can actually subscribe to events\n const provider = getProvider(contract.runner);\n assert(provider, \"contract runner does not support subscribing\", \"UNSUPPORTED_OPERATION\", { operation });\n const { fragment, tag, topics } = await getSubInfo(contract, event);\n const { addr, subs } = getInternal(contract);\n let sub = subs.get(tag);\n if (!sub) {\n const address = (addr ? addr : contract);\n const filter = { address, topics };\n const listener = (log) => {\n let foundFragment = fragment;\n if (foundFragment == null) {\n try {\n foundFragment = contract.interface.getEvent(log.topics[0]);\n }\n catch (error) { }\n }\n // If fragment is null, we do not deconstruct the args to emit\n if (foundFragment) {\n const _foundFragment = foundFragment;\n const args = fragment ? contract.interface.decodeEventLog(fragment, log.data, log.topics) : [];\n emit(contract, event, args, (listener) => {\n return new ContractEventPayload(contract, listener, event, _foundFragment, log);\n });\n }\n else {\n emit(contract, event, [], (listener) => {\n return new ContractUnknownEventPayload(contract, listener, event, log);\n });\n }\n };\n let starting = [];\n const start = () => {\n if (starting.length) {\n return;\n }\n starting.push(provider.on(filter, listener));\n };\n const stop = async () => {\n if (starting.length == 0) {\n return;\n }\n let started = starting;\n starting = [];\n await Promise.all(started);\n provider.off(filter, listener);\n };\n sub = { tag, listeners: [], start, stop };\n subs.set(tag, sub);\n }\n return sub;\n}\n// We use this to ensure one emit resolves before firing the next to\n// ensure correct ordering (note this cannot throw and just adds the\n// notice to the event queu using setTimeout).\nlet lastEmit = Promise.resolve();\nasync function _emit(contract, event, args, payloadFunc) {\n await lastEmit;\n const sub = await hasSub(contract, event);\n if (!sub) {\n return false;\n }\n const count = sub.listeners.length;\n sub.listeners = sub.listeners.filter(({ listener, once }) => {\n const passArgs = Array.from(args);\n if (payloadFunc) {\n passArgs.push(payloadFunc(once ? null : listener));\n }\n try {\n listener.call(contract, ...passArgs);\n }\n catch (error) { }\n return !once;\n });\n if (sub.listeners.length === 0) {\n sub.stop();\n getInternal(contract).subs.delete(sub.tag);\n }\n return (count > 0);\n}\nasync function emit(contract, event, args, payloadFunc) {\n try {\n await lastEmit;\n }\n catch (error) { }\n const resultPromise = _emit(contract, event, args, payloadFunc);\n lastEmit = resultPromise;\n return await resultPromise;\n}\nconst passProperties = [\"then\"];\nexport class BaseContract {\n /**\n * The target to connect to.\n *\n * This can be an address, ENS name or any [[Addressable]], such as\n * another contract. To get the resovled address, use the ``getAddress``\n * method.\n */\n target;\n /**\n * The contract Interface.\n */\n interface;\n /**\n * The connected runner. This is generally a [[Provider]] or a\n * [[Signer]], which dictates what operations are supported.\n *\n * For example, a **Contract** connected to a [[Provider]] may\n * only execute read-only operations.\n */\n runner;\n /**\n * All the Events available on this contract.\n */\n filters;\n /**\n * @_ignore:\n */\n [internal];\n /**\n * The fallback or receive function if any.\n */\n fallback;\n /**\n * Creates a new contract connected to %%target%% with the %%abi%% and\n * optionally connected to a %%runner%% to perform operations on behalf\n * of.\n */\n constructor(target, abi, runner, _deployTx) {\n assertArgument(typeof (target) === \"string\" || isAddressable(target), \"invalid value for Contract target\", \"target\", target);\n if (runner == null) {\n runner = null;\n }\n const iface = Interface.from(abi);\n defineProperties(this, { target, runner, interface: iface });\n Object.defineProperty(this, internal, { value: {} });\n let addrPromise;\n let addr = null;\n let deployTx = null;\n if (_deployTx) {\n const provider = getProvider(runner);\n // @TODO: the provider can be null; make a custom dummy provider that will throw a\n // meaningful error\n deployTx = new ContractTransactionResponse(this.interface, provider, _deployTx);\n }\n let subs = new Map();\n // Resolve the target as the address\n if (typeof (target) === \"string\") {\n if (isHexString(target)) {\n addr = target;\n addrPromise = Promise.resolve(target);\n }\n else {\n const resolver = getRunner(runner, \"resolveName\");\n if (!canResolve(resolver)) {\n throw makeError(\"contract runner does not support name resolution\", \"UNSUPPORTED_OPERATION\", {\n operation: \"resolveName\"\n });\n }\n addrPromise = resolver.resolveName(target).then((addr) => {\n if (addr == null) {\n throw makeError(\"an ENS name used for a contract target must be correctly configured\", \"UNCONFIGURED_NAME\", {\n value: target\n });\n }\n getInternal(this).addr = addr;\n return addr;\n });\n }\n }\n else {\n addrPromise = target.getAddress().then((addr) => {\n if (addr == null) {\n throw new Error(\"TODO\");\n }\n getInternal(this).addr = addr;\n return addr;\n });\n }\n // Set our private values\n setInternal(this, { addrPromise, addr, deployTx, subs });\n // Add the event filters\n const filters = new Proxy({}, {\n get: (target, prop, receiver) => {\n // Pass important checks (like `then` for Promise) through\n if (typeof (prop) === \"symbol\" || passProperties.indexOf(prop) >= 0) {\n return Reflect.get(target, prop, receiver);\n }\n try {\n return this.getEvent(prop);\n }\n catch (error) {\n if (!isError(error, \"INVALID_ARGUMENT\") || error.argument !== \"key\") {\n throw error;\n }\n }\n return undefined;\n },\n has: (target, prop) => {\n // Pass important checks (like `then` for Promise) through\n if (passProperties.indexOf(prop) >= 0) {\n return Reflect.has(target, prop);\n }\n return Reflect.has(target, prop) || this.interface.hasEvent(String(prop));\n }\n });\n defineProperties(this, { filters });\n defineProperties(this, {\n fallback: ((iface.receive || iface.fallback) ? (buildWrappedFallback(this)) : null)\n });\n // Return a Proxy that will respond to functions\n return new Proxy(this, {\n get: (target, prop, receiver) => {\n if (typeof (prop) === \"symbol\" || prop in target || passProperties.indexOf(prop) >= 0) {\n return Reflect.get(target, prop, receiver);\n }\n // Undefined properties should return undefined\n try {\n return target.getFunction(prop);\n }\n catch (error) {\n if (!isError(error, \"INVALID_ARGUMENT\") || error.argument !== \"key\") {\n throw error;\n }\n }\n return undefined;\n },\n has: (target, prop) => {\n if (typeof (prop) === \"symbol\" || prop in target || passProperties.indexOf(prop) >= 0) {\n return Reflect.has(target, prop);\n }\n return target.interface.hasFunction(prop);\n }\n });\n }\n /**\n * Return a new Contract instance with the same target and ABI, but\n * a different %%runner%%.\n */\n connect(runner) {\n return new BaseContract(this.target, this.interface, runner);\n }\n /**\n * Return a new Contract instance with the same ABI and runner, but\n * a different %%target%%.\n */\n attach(target) {\n return new BaseContract(target, this.interface, this.runner);\n }\n /**\n * Return the resolved address of this Contract.\n */\n async getAddress() { return await getInternal(this).addrPromise; }\n /**\n * Return the deployed bytecode or null if no bytecode is found.\n */\n async getDeployedCode() {\n const provider = getProvider(this.runner);\n assert(provider, \"runner does not support .provider\", \"UNSUPPORTED_OPERATION\", { operation: \"getDeployedCode\" });\n const code = await provider.getCode(await this.getAddress());\n if (code === \"0x\") {\n return null;\n }\n return code;\n }\n /**\n * Resolve to this Contract once the bytecode has been deployed, or\n * resolve immediately if already deployed.\n */\n async waitForDeployment() {\n // We have the deployement transaction; just use that (throws if deployement fails)\n const deployTx = this.deploymentTransaction();\n if (deployTx) {\n await deployTx.wait();\n return this;\n }\n // Check for code\n const code = await this.getDeployedCode();\n if (code != null) {\n return this;\n }\n // Make sure we can subscribe to a provider event\n const provider = getProvider(this.runner);\n assert(provider != null, \"contract runner does not support .provider\", \"UNSUPPORTED_OPERATION\", { operation: \"waitForDeployment\" });\n return new Promise((resolve, reject) => {\n const checkCode = async () => {\n try {\n const code = await this.getDeployedCode();\n if (code != null) {\n return resolve(this);\n }\n provider.once(\"block\", checkCode);\n }\n catch (error) {\n reject(error);\n }\n };\n checkCode();\n });\n }\n /**\n * Return the transaction used to deploy this contract.\n *\n * This is only available if this instance was returned from a\n * [[ContractFactory]].\n */\n deploymentTransaction() {\n return getInternal(this).deployTx;\n }\n /**\n * Return the function for a given name. This is useful when a contract\n * method name conflicts with a JavaScript name such as ``prototype`` or\n * when using a Contract programatically.\n */\n getFunction(key) {\n if (typeof (key) !== \"string\") {\n key = key.format();\n }\n const func = buildWrappedMethod(this, key);\n return func;\n }\n /**\n * Return the event for a given name. This is useful when a contract\n * event name conflicts with a JavaScript name such as ``prototype`` or\n * when using a Contract programatically.\n */\n getEvent(key) {\n if (typeof (key) !== \"string\") {\n key = key.format();\n }\n return buildWrappedEvent(this, key);\n }\n /**\n * @_ignore:\n */\n async queryTransaction(hash) {\n throw new Error(\"@TODO\");\n }\n /*\n // @TODO: this is a non-backwards compatible change, but will be added\n // in v7 and in a potential SmartContract class in an upcoming\n // v6 release\n async getTransactionReceipt(hash: string): Promise<null | ContractTransactionReceipt> {\n const provider = getProvider(this.runner);\n assert(provider, \"contract runner does not have a provider\",\n \"UNSUPPORTED_OPERATION\", { operation: \"queryTransaction\" });\n\n const receipt = await provider.getTransactionReceipt(hash);\n if (receipt == null) { return null; }\n\n return new ContractTransactionReceipt(this.interface, provider, receipt);\n }\n */\n /**\n * Provide historic access to event data for %%event%% in the range\n * %%fromBlock%% (default: ``0``) to %%toBlock%% (default: ``\"latest\"``)\n * inclusive.\n */\n async queryFilter(event, fromBlock, toBlock) {\n if (fromBlock == null) {\n fromBlock = 0;\n }\n if (toBlock == null) {\n toBlock = \"latest\";\n }\n const { addr, addrPromise } = getInternal(this);\n const address = (addr ? addr : (await addrPromise));\n const { fragment, topics } = await getSubInfo(this, event);\n const filter = { address, topics, fromBlock, toBlock };\n const provider = getProvider(this.runner);\n assert(provider, \"contract runner does not have a provider\", \"UNSUPPORTED_OPERATION\", { operation: \"queryFilter\" });\n return (await provider.getLogs(filter)).map((log) => {\n let foundFragment = fragment;\n if (foundFragment == null) {\n try {\n foundFragment = this.interface.getEvent(log.topics[0]);\n }\n catch (error) { }\n }\n if (foundFragment) {\n try {\n return new EventLog(log, this.interface, foundFragment);\n }\n catch (error) {\n return new UndecodedEventLog(log, error);\n }\n }\n return new Log(log, provider);\n });\n }\n /**\n * Add an event %%listener%% for the %%event%%.\n */\n async on(event, listener) {\n const sub = await getSub(this, \"on\", event);\n sub.listeners.push({ listener, once: false });\n sub.start();\n return this;\n }\n /**\n * Add an event %%listener%% for the %%event%%, but remove the listener\n * after it is fired once.\n */\n async once(event, listener) {\n const sub = await getSub(this, \"once\", event);\n sub.listeners.push({ listener, once: true });\n sub.start();\n return this;\n }\n /**\n * Emit an %%event%% calling all listeners with %%args%%.\n *\n * Resolves to ``true`` if any listeners were called.\n */\n async emit(event, ...args) {\n return await emit(this, event, args, null);\n }\n /**\n * Resolves to the number of listeners of %%event%% or the total number\n * of listeners if unspecified.\n */\n async listenerCount(event) {\n if (event) {\n const sub = await hasSub(this, event);\n if (!sub) {\n return 0;\n }\n return sub.listeners.length;\n }\n const { subs } = getInternal(this);\n let total = 0;\n for (const { listeners } of subs.values()) {\n total += listeners.length;\n }\n return total;\n }\n /**\n * Resolves to the listeners subscribed to %%event%% or all listeners\n * if unspecified.\n */\n async listeners(event) {\n if (event) {\n const sub = await hasSub(this, event);\n if (!sub) {\n return [];\n }\n return sub.listeners.map(({ listener }) => listener);\n }\n const { subs } = getInternal(this);\n let result = [];\n for (const { listeners } of subs.values()) {\n result = result.concat(listeners.map(({ listener }) => listener));\n }\n return result;\n }\n /**\n * Remove the %%listener%% from the listeners for %%event%% or remove\n * all listeners if unspecified.\n */\n async off(event, listener) {\n const sub = await hasSub(this, event);\n if (!sub) {\n return this;\n }\n if (listener) {\n const index = sub.listeners.map(({ listener }) => listener).indexOf(listener);\n if (index >= 0) {\n sub.listeners.splice(index, 1);\n }\n }\n if (listener == null || sub.listeners.length === 0) {\n sub.stop();\n getInternal(this).subs.delete(sub.tag);\n }\n return this;\n }\n /**\n * Remove all the listeners for %%event%% or remove all listeners if\n * unspecified.\n */\n async removeAllListeners(event) {\n if (event) {\n const sub = await hasSub(this, event);\n if (!sub) {\n return this;\n }\n sub.stop();\n getInternal(this).subs.delete(sub.tag);\n }\n else {\n const { subs } = getInternal(this);\n for (const { tag, stop } of subs.values()) {\n stop();\n subs.delete(tag);\n }\n }\n return this;\n }\n /**\n * Alias for [on].\n */\n async addListener(event, listener) {\n return await this.on(event, listener);\n }\n /**\n * Alias for [off].\n */\n async removeListener(event, listener) {\n return await this.off(event, listener);\n }\n /**\n * Create a new Class for the %%abi%%.\n */\n static buildClass(abi) {\n class CustomContract extends BaseContract {\n constructor(address, runner = null) {\n super(address, abi, runner);\n }\n }\n return CustomContract;\n }\n ;\n /**\n * Create a new BaseContract with a specified Interface.\n */\n static from(target, abi, runner) {\n if (runner == null) {\n runner = null;\n }\n const contract = new this(target, abi, runner);\n return contract;\n }\n}\nfunction _ContractBase() {\n return BaseContract;\n}\n/**\n * A [[BaseContract]] with no type guards on its methods or events.\n */\nexport class Contract extends _ContractBase() {\n}\n//# sourceMappingURL=contract.js.map","import { hexToU8a, u8aToHex, isHex } from '@polkadot/util';\nimport { encodeAddress, decodeAddress, base58Decode } from '@polkadot/util-crypto';\nimport * as ethers from 'ethers';\n\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\n\n// ../../node_modules/.pnpm/bech32-buffer@0.2.1_patch_hash=elryfzb6nrq4qzi6wcigmgsdj4/node_modules/bech32-buffer/lib/bit-converter.js\nvar require_bit_converter = __commonJS({\n \"../../node_modules/.pnpm/bech32-buffer@0.2.1_patch_hash=elryfzb6nrq4qzi6wcigmgsdj4/node_modules/bech32-buffer/lib/bit-converter.js\"(exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.createBitArray = createBitArray;\n exports.fromBits = fromBits;\n exports.toBits = toBits;\n function toBitArrayUnchecked(src) {\n return src;\n }\n __name(toBitArrayUnchecked, \"toBitArrayUnchecked\");\n function createBitArray(len) {\n return toBitArrayUnchecked(new Uint8Array(len));\n }\n __name(createBitArray, \"createBitArray\");\n function convert(src, srcBits, dst, dstBits, pad) {\n var mask = (1 << dstBits) - 1;\n var acc = 0;\n var bits = 0;\n var pos = 0;\n src.forEach(function(b) {\n acc = (acc << srcBits) + b;\n bits += srcBits;\n while (bits >= dstBits) {\n bits -= dstBits;\n dst[pos] = acc >> bits & mask;\n pos += 1;\n }\n });\n if (pad) {\n if (bits > 0) {\n dst[pos] = acc << dstBits - bits & mask;\n }\n } else {\n if (bits >= srcBits) {\n throw new Error(\"Excessive padding: \".concat(bits, \" (max \").concat(srcBits - 1, \" allowed)\"));\n }\n if (acc % (1 << bits) !== 0) {\n throw new Error(\"Non-zero padding\");\n }\n }\n }\n __name(convert, \"convert\");\n function toBits(src, bits, dst) {\n if (bits > 8 || bits < 1) {\n throw new RangeError(\"Invalid bits per element; 1 to 8 expected\");\n }\n convert(toBitArrayUnchecked(src), 8, dst, bits, true);\n return dst;\n }\n __name(toBits, \"toBits\");\n function fromBits(src, bits, dst) {\n if (bits > 8 || bits < 1) {\n throw new RangeError(\"Invalid bits per element; 1 to 8 expected\");\n }\n convert(src, bits, toBitArrayUnchecked(dst), 8, false);\n return dst;\n }\n __name(fromBits, \"fromBits\");\n }\n});\n\n// ../../node_modules/.pnpm/bech32-buffer@0.2.1_patch_hash=elryfzb6nrq4qzi6wcigmgsdj4/node_modules/bech32-buffer/lib/encoding.js\nvar require_encoding = __commonJS({\n \"../../node_modules/.pnpm/bech32-buffer@0.2.1_patch_hash=elryfzb6nrq4qzi6wcigmgsdj4/node_modules/bech32-buffer/lib/encoding.js\"(exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.CHECKSUM_LENGTH = void 0;\n exports.createChecksum = createChecksum;\n exports.decode = decode;\n exports.decodeWithPrefix = decodeWithPrefix;\n exports.detectCase = detectCase;\n exports.encode = encode;\n exports.expandPrefix = expandPrefix;\n exports.verifyChecksum = verifyChecksum;\n var _bitConverter = require_bit_converter();\n var CHARSET = \"qpzry9x8gf2tvdw0s3jn54khce6mua7l\";\n var BECH32M_CHECKSUM = 734539939;\n var MIN_CHAR_CODE = 33;\n var MAX_CHAR_CODE = 126;\n var CHECKSUM_LENGTH = 6;\n exports.CHECKSUM_LENGTH = CHECKSUM_LENGTH;\n var CHAR_LOOKUP = function() {\n var lookup = /* @__PURE__ */ new Map();\n for (var i = 0; i < CHARSET.length; i += 1) {\n lookup.set(CHARSET[i], i);\n }\n return lookup;\n }();\n var GEN = [\n 996825010,\n 642813549,\n 513874426,\n 1027748829,\n 705979059\n ];\n function polymod(values) {\n return values.reduce(\n function(checksum, value) {\n var bits = checksum >> 25;\n var newChecksum = (checksum & 33554431) << 5 ^ value;\n return GEN.reduce(function(chk, gen, i) {\n return (bits >> i & 1) === 0 ? chk : chk ^ gen;\n }, newChecksum);\n },\n /* initial checksum */\n 1\n );\n }\n __name(polymod, \"polymod\");\n function expandPrefix(prefix, outBuffer) {\n for (var i = 0; i < prefix.length; i += 1) {\n var code = prefix.charCodeAt(i);\n outBuffer[i] = code >> 5;\n outBuffer[i + prefix.length + 1] = code & 31;\n }\n outBuffer[prefix.length] = 0;\n }\n __name(expandPrefix, \"expandPrefix\");\n function verifyChecksum(buffer) {\n switch (polymod(buffer)) {\n case 1:\n return \"bech32\";\n case BECH32M_CHECKSUM:\n return \"bech32m\";\n default:\n return void 0;\n }\n }\n __name(verifyChecksum, \"verifyChecksum\");\n function createChecksum(buffer, encoding) {\n var checksumConstant;\n switch (encoding) {\n case \"bech32\":\n checksumConstant = 1;\n break;\n case \"bech32m\":\n checksumConstant = BECH32M_CHECKSUM;\n break;\n default:\n throw Error(\"Invalid encoding value: \".concat(encoding, \"; expected bech32 or bech32m\"));\n }\n var mod = polymod(buffer) ^ checksumConstant;\n for (var i = 0; i < CHECKSUM_LENGTH; i += 1) {\n var shift = 5 * (5 - i);\n buffer[buffer.length - CHECKSUM_LENGTH + i] = mod >> shift & 31;\n }\n }\n __name(createChecksum, \"createChecksum\");\n function encode(buffer) {\n return buffer.reduce(function(acc, bits) {\n return acc + CHARSET[bits];\n }, \"\");\n }\n __name(encode, \"encode\");\n function decode(message, dst) {\n var realDst = dst || (0, _bitConverter.createBitArray)(message.length);\n for (var i = 0; i < message.length; i += 1) {\n var idx = CHAR_LOOKUP.get(message[i]);\n if (idx === void 0) {\n throw new Error(\"Invalid char in message: \".concat(message[i]));\n }\n realDst[i] = idx;\n }\n return realDst;\n }\n __name(decode, \"decode\");\n function decodeWithPrefix(prefix, message) {\n var len = message.length + 2 * prefix.length + 1;\n var dst = (0, _bitConverter.createBitArray)(len);\n expandPrefix(prefix, dst.subarray(0, 2 * prefix.length + 1));\n decode(message, dst.subarray(2 * prefix.length + 1));\n return dst;\n }\n __name(decodeWithPrefix, \"decodeWithPrefix\");\n function detectCase(message) {\n var messageDescription = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : \"message\";\n var hasLowerCase = false;\n var hasUpperCase = false;\n for (var i = 0; i < message.length; i += 1) {\n var ord = message.charCodeAt(i);\n if (ord < MIN_CHAR_CODE || ord > MAX_CHAR_CODE) {\n throw new TypeError(\"Invalid char in \".concat(messageDescription, \": \").concat(ord, \"; \") + \"should be in ASCII range \".concat(MIN_CHAR_CODE, \"-\").concat(MAX_CHAR_CODE));\n }\n hasUpperCase = hasUpperCase || ord >= 65 && ord <= 90;\n hasLowerCase = hasLowerCase || ord >= 97 && ord <= 122;\n }\n if (hasLowerCase && hasUpperCase) {\n throw new TypeError(\"Mixed-case \".concat(messageDescription));\n } else if (hasUpperCase) {\n return \"upper\";\n } else if (hasLowerCase) {\n return \"lower\";\n } else {\n return null;\n }\n }\n __name(detectCase, \"detectCase\");\n }\n});\n\n// ../../node_modules/.pnpm/bech32-buffer@0.2.1_patch_hash=elryfzb6nrq4qzi6wcigmgsdj4/node_modules/bech32-buffer/lib/index.js\nvar require_lib = __commonJS({\n \"../../node_modules/.pnpm/bech32-buffer@0.2.1_patch_hash=elryfzb6nrq4qzi6wcigmgsdj4/node_modules/bech32-buffer/lib/index.js\"(exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.BitcoinAddress = void 0;\n exports.decode = decode;\n exports.decodeTo5BitArray = decodeTo5BitArray;\n exports.encode = encode;\n exports.encode5BitArray = encode5BitArray;\n exports.from5BitArray = from5BitArray;\n exports.to5BitArray = to5BitArray;\n var _bitConverter = require_bit_converter();\n var _encoding = require_encoding();\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n __name(_classCallCheck, \"_classCallCheck\");\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor)\n descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n __name(_defineProperties, \"_defineProperties\");\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps)\n _defineProperties(Constructor.prototype, protoProps);\n if (staticProps)\n _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n __name(_createClass, \"_createClass\");\n var MAX_ENC_LENGTH = 90;\n function to5BitArray(src, dst) {\n var len = Math.ceil(src.length * 8 / 5);\n var realDst = dst || (0, _bitConverter.createBitArray)(len);\n return (0, _bitConverter.toBits)(src, 5, realDst);\n }\n __name(to5BitArray, \"to5BitArray\");\n function from5BitArray(src, dst) {\n var len = Math.floor(src.length * 5 / 8);\n var realDst = dst || new Uint8Array(len);\n return (0, _bitConverter.fromBits)(src, 5, realDst);\n }\n __name(from5BitArray, \"from5BitArray\");\n function encode5BitArray(prefix, data) {\n var _detectCase;\n var encoding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"bech32\";\n var len = 2 * prefix.length + 1 + data.length + _encoding.CHECKSUM_LENGTH;\n if (len - prefix.length > MAX_ENC_LENGTH) {\n throw new Error(\"Message to be produced is too long (max \".concat(MAX_ENC_LENGTH, \" supported)\"));\n }\n var prefixCase = (_detectCase = (0, _encoding.detectCase)(prefix, \"prefix\")) !== null && _detectCase !== void 0 ? _detectCase : \"lower\";\n var buffer = (0, _bitConverter.createBitArray)(len);\n (0, _encoding.expandPrefix)(prefix.toLowerCase(), buffer.subarray(0, 2 * prefix.length + 1));\n var dataBuffer = buffer.subarray(2 * prefix.length + 1, buffer.length - _encoding.CHECKSUM_LENGTH);\n dataBuffer.set(data);\n (0, _encoding.createChecksum)(buffer, encoding);\n var encoded = (0, _encoding.encode)(buffer.subarray(2 * prefix.length + 1));\n if (prefixCase === \"upper\") {\n encoded = encoded.toUpperCase();\n }\n return \"\".concat(prefix, \"1\").concat(encoded);\n }\n __name(encode5BitArray, \"encode5BitArray\");\n function encode(prefix, data) {\n var encoding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"bech32\";\n return encode5BitArray(prefix, to5BitArray(data), encoding);\n }\n __name(encode, \"encode\");\n function decodeTo5BitArray(message) {\n if (message.length > MAX_ENC_LENGTH) {\n throw new TypeError(\"Message too long; max \".concat(MAX_ENC_LENGTH, \" expected\"));\n }\n (0, _encoding.detectCase)(message);\n var lowerCaseMsg = message.toLowerCase();\n var sepIdx = lowerCaseMsg.lastIndexOf(\"1\");\n if (sepIdx < 0) {\n throw new Error('No separator char (\"1\") found');\n }\n if (sepIdx > message.length - _encoding.CHECKSUM_LENGTH - 1) {\n throw new Error(\"Data part of the message too short (at least \".concat(_encoding.CHECKSUM_LENGTH, \" chars expected)\"));\n }\n var prefix = lowerCaseMsg.substring(0, sepIdx);\n var bitArray = (0, _encoding.decodeWithPrefix)(prefix, lowerCaseMsg.substring(sepIdx + 1));\n var encoding = (0, _encoding.verifyChecksum)(bitArray);\n if (encoding === void 0) {\n throw new Error(\"Invalid checksum\");\n }\n return {\n prefix,\n encoding,\n // Strip off the prefix from the front and the checksum from the end\n data: bitArray.subarray(2 * prefix.length + 1, bitArray.length - _encoding.CHECKSUM_LENGTH)\n };\n }\n __name(decodeTo5BitArray, \"decodeTo5BitArray\");\n function decode(message) {\n var _decodeTo5BitArray = decodeTo5BitArray(message), prefix = _decodeTo5BitArray.prefix, encoding = _decodeTo5BitArray.encoding, bitArray = _decodeTo5BitArray.data;\n return {\n prefix,\n encoding,\n data: from5BitArray(bitArray)\n };\n }\n __name(decode, \"decode\");\n var BitcoinAddress2 = /* @__PURE__ */ function() {\n function BitcoinAddress3(prefix, scriptVersion, data) {\n _classCallCheck(this, BitcoinAddress3);\n if (prefix !== \"bc\" && prefix !== \"tb\" && prefix !== \"bcrt\") {\n throw new Error('Invalid human-readable prefix, \"bc\", \"tb\", or \"bcrt\" expected');\n }\n if (scriptVersion < 0 || scriptVersion > 16) {\n throw new RangeError(\"Invalid scriptVersion, value in range [0, 16] expected\");\n }\n if (data.length < 2 || data.length > 40) {\n throw new RangeError(\"Invalid script length: expected 2 to 40 bytes\");\n }\n if (scriptVersion === 0 && data.length !== 20 && data.length !== 32) {\n throw new Error(\"Invalid v0 script length: expected 20 or 32 bytes\");\n }\n this.prefix = prefix;\n this.scriptVersion = scriptVersion;\n this.data = data;\n }\n __name(BitcoinAddress3, \"BitcoinAddress\");\n _createClass(BitcoinAddress3, [\n {\n key: \"type\",\n value: /* @__PURE__ */ __name(function type() {\n if (this.scriptVersion !== 0) {\n return void 0;\n }\n switch (this.data.length) {\n case 20:\n return \"p2wpkh\";\n case 32:\n return \"p2wsh\";\n default:\n return void 0;\n }\n }, \"type\")\n },\n {\n key: \"encode\",\n value: /* @__PURE__ */ __name(function encode2() {\n var len = Math.ceil(this.data.length * 8 / 5);\n var converted = (0, _bitConverter.createBitArray)(len + 1);\n converted[0] = this.scriptVersion;\n to5BitArray(this.data, converted.subarray(1));\n var encoding = this.scriptVersion === 0 ? \"bech32\" : \"bech32m\";\n return encode5BitArray(this.prefix, converted, encoding);\n }, \"encode\")\n }\n ], [\n {\n key: \"decode\",\n value: (\n /**\n * Human-readable prefix. Equal to `'bc'` (for mainnet addresses)\n * or `'tb'` (for testnet addresses).\n */\n /**\n * Script version. An integer between 0 and 16 (inclusive).\n */\n /**\n * Script data. A byte string with length 2 to 40 (inclusive).\n */\n /**\n * Decodes a Bitcoin address from a Bech32(m) string.\n * As per BIP 350, the original encoding is expected for version 0 scripts, while\n * other script versions expect the modified encoding.\n *\n * This method does not check whether the address is well-formed;\n * use `type()` method on returned address to find that out.\n *\n * @param {string} message\n * @returns {BitcoinAddress}\n */\n /* @__PURE__ */ __name(function decode2(message) {\n var _decodeTo5BitArray2 = decodeTo5BitArray(message), prefix = _decodeTo5BitArray2.prefix, data = _decodeTo5BitArray2.data, encoding = _decodeTo5BitArray2.encoding;\n if (prefix !== \"bc\" && prefix !== \"tb\" && prefix !== \"bcrt\") {\n throw new Error('Invalid human-readable prefix, \"bc\", \"tb\", or \"bcrt\" expected');\n }\n var scriptVersion = data[0];\n if (scriptVersion === 0 && encoding !== \"bech32\") {\n throw Error(\"Unexpected encoding \".concat(encoding, \" used for version 0 script\"));\n }\n if (scriptVersion > 0 && encoding !== \"bech32m\") {\n throw Error(\"Unexpected encoding \".concat(encoding, \" used for version \").concat(scriptVersion, \" script\"));\n }\n return new this(prefix, scriptVersion, from5BitArray(data.subarray(1)));\n }, \"decode\")\n )\n }\n ]);\n return BitcoinAddress3;\n }();\n exports.BitcoinAddress = BitcoinAddress2;\n }\n});\n\n// ../shared/src/enums.ts\nvar arrayToMap = /* @__PURE__ */ __name((array) => Object.fromEntries(array.map((key) => [\n key,\n key\n])), \"arrayToMap\");\nvar InternalAssets = arrayToMap([\n \"Flip\",\n \"Usdc\",\n \"Dot\",\n \"Eth\",\n \"Btc\",\n \"Usdt\",\n \"ArbUsdc\",\n \"ArbEth\"\n]);\nvar Chains = arrayToMap([\n \"Bitcoin\",\n \"Ethereum\",\n \"Polkadot\",\n \"Arbitrum\"\n]);\nvar Assets = arrayToMap([\n \"FLIP\",\n \"USDC\",\n \"DOT\",\n \"ETH\",\n \"BTC\",\n \"USDT\"\n]);\nvar ChainflipNetworks = arrayToMap([\n \"backspin\",\n \"sisyphos\",\n \"perseverance\",\n \"mainnet\"\n]);\nvar isTestnet = /* @__PURE__ */ __name((network) => network !== ChainflipNetworks.mainnet, \"isTestnet\");\nvar assetConstants = {\n [InternalAssets.Eth]: {\n chain: Chains.Ethereum,\n asset: Assets.ETH,\n name: \"Ether\",\n decimals: 18,\n contractId: 1\n },\n [InternalAssets.Flip]: {\n chain: Chains.Ethereum,\n asset: Assets.FLIP,\n name: \"FLIP\",\n decimals: 18,\n contractId: 2\n },\n [InternalAssets.Usdc]: {\n chain: Chains.Ethereum,\n asset: Assets.USDC,\n name: \"USDC\",\n decimals: 6,\n contractId: 3\n },\n [InternalAssets.Usdt]: {\n chain: Chains.Ethereum,\n asset: Assets.USDT,\n name: \"USDT\",\n decimals: 6,\n contractId: 8\n },\n [InternalAssets.Dot]: {\n chain: Chains.Polkadot,\n asset: Assets.DOT,\n name: \"Polkadot\",\n decimals: 10,\n contractId: 4\n },\n [InternalAssets.Btc]: {\n chain: Chains.Bitcoin,\n asset: Assets.BTC,\n name: \"Bitcoin\",\n decimals: 8,\n contractId: 5\n },\n [InternalAssets.ArbEth]: {\n chain: Chains.Arbitrum,\n asset: Assets.ETH,\n name: \"Arbitrum Ether\",\n decimals: 18,\n contractId: 6\n },\n [InternalAssets.ArbUsdc]: {\n chain: Chains.Arbitrum,\n asset: Assets.USDC,\n name: \"Arbitrum USDC\",\n decimals: 6,\n contractId: 7\n }\n};\nvar chainConstants = {\n [Chains.Ethereum]: {\n assets: [\n Assets.ETH,\n Assets.FLIP,\n Assets.USDC,\n Assets.USDT\n ],\n gasAsset: Assets.ETH,\n contractId: 1,\n blockTimeSeconds: 12\n },\n [Chains.Polkadot]: {\n assets: [\n Assets.DOT\n ],\n gasAsset: Assets.DOT,\n contractId: 2,\n blockTimeSeconds: 6\n },\n [Chains.Bitcoin]: {\n assets: [\n Assets.BTC\n ],\n gasAsset: Assets.BTC,\n contractId: 3,\n blockTimeSeconds: 10 * 60\n },\n [Chains.Arbitrum]: {\n assets: [\n Assets.ETH,\n Assets.USDC\n ],\n gasAsset: Assets.ETH,\n contractId: 4,\n blockTimeSeconds: 0.26\n }\n};\nfunction isValidAssetAndChain(assetAndChain2) {\n const { asset: asset2, chain: chain2 } = assetAndChain2;\n if (!(chain2 in Chains))\n return false;\n const validAssets = chainConstants[chain2].assets;\n return validAssets.includes(asset2);\n}\n__name(isValidAssetAndChain, \"isValidAssetAndChain\");\nfunction assertIsValidAssetAndChain(assetAndChain2) {\n if (!isValidAssetAndChain(assetAndChain2)) {\n throw new Error(`invalid asset and chain combination: ${JSON.stringify(assetAndChain2)}`);\n }\n}\n__name(assertIsValidAssetAndChain, \"assertIsValidAssetAndChain\");\nvar readChainAssetValue = /* @__PURE__ */ __name((map, assetAndChain2) => {\n assertIsValidAssetAndChain(assetAndChain2);\n const chainValues = map[assetAndChain2.chain];\n return chainValues[assetAndChain2.asset];\n}, \"readChainAssetValue\");\nfunction getInternalAsset(asset2) {\n const map = {\n [Chains.Ethereum]: {\n [Assets.USDC]: InternalAssets.Usdc,\n [Assets.FLIP]: InternalAssets.Flip,\n [Assets.ETH]: InternalAssets.Eth,\n [Assets.USDT]: InternalAssets.Usdt\n },\n [Chains.Bitcoin]: {\n [Assets.BTC]: InternalAssets.Btc\n },\n [Chains.Polkadot]: {\n [Assets.DOT]: InternalAssets.Dot\n },\n [Chains.Arbitrum]: {\n [Assets.USDC]: InternalAssets.ArbUsdc,\n [Assets.ETH]: InternalAssets.ArbEth\n }\n };\n return readChainAssetValue(map, asset2);\n}\n__name(getInternalAsset, \"getInternalAsset\");\n\n// ../../node_modules/.pnpm/zod@3.22.4/node_modules/zod/lib/index.mjs\nvar util;\n(function(util2) {\n util2.assertEqual = (val) => val;\n function assertIs(_arg) {\n }\n __name(assertIs, \"assertIs\");\n util2.assertIs = assertIs;\n function assertNever(_x) {\n throw new Error();\n }\n __name(assertNever, \"assertNever\");\n util2.assertNever = assertNever;\n util2.arrayToEnum = (items) => {\n const obj = {};\n for (const item of items) {\n obj[item] = item;\n }\n return obj;\n };\n util2.getValidEnumValues = (obj) => {\n const validKeys = util2.objectKeys(obj).filter((k) => typeof obj[obj[k]] !== \"number\");\n const filtered = {};\n for (const k of validKeys) {\n filtered[k] = obj[k];\n }\n return util2.objectValues(filtered);\n };\n util2.objectValues = (obj) => {\n return util2.objectKeys(obj).map(function(e) {\n return obj[e];\n });\n };\n util2.objectKeys = typeof Object.keys === \"function\" ? (obj) => Object.keys(obj) : (object) => {\n const keys = [];\n for (const key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n keys.push(key);\n }\n }\n return keys;\n };\n util2.find = (arr, checker) => {\n for (const item of arr) {\n if (checker(item))\n return item;\n }\n return void 0;\n };\n util2.isInteger = typeof Number.isInteger === \"function\" ? (val) => Number.isInteger(val) : (val) => typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n function joinValues(array, separator = \" | \") {\n return array.map((val) => typeof val === \"string\" ? `'${val}'` : val).join(separator);\n }\n __name(joinValues, \"joinValues\");\n util2.joinValues = joinValues;\n util2.jsonStringifyReplacer = (_, value) => {\n if (typeof value === \"bigint\") {\n return value.toString();\n }\n return value;\n };\n})(util || (util = {}));\nvar objectUtil;\n(function(objectUtil2) {\n objectUtil2.mergeShapes = (first, second) => {\n return {\n ...first,\n ...second\n // second overwrites first\n };\n };\n})(objectUtil || (objectUtil = {}));\nvar ZodParsedType = util.arrayToEnum([\n \"string\",\n \"nan\",\n \"number\",\n \"integer\",\n \"float\",\n \"boolean\",\n \"date\",\n \"bigint\",\n \"symbol\",\n \"function\",\n \"undefined\",\n \"null\",\n \"array\",\n \"object\",\n \"unknown\",\n \"promise\",\n \"void\",\n \"never\",\n \"map\",\n \"set\"\n]);\nvar getParsedType = /* @__PURE__ */ __name((data) => {\n const t = typeof data;\n switch (t) {\n case \"undefined\":\n return ZodParsedType.undefined;\n case \"string\":\n return ZodParsedType.string;\n case \"number\":\n return isNaN(data) ? ZodParsedType.nan : ZodParsedType.number;\n case \"boolean\":\n return ZodParsedType.boolean;\n case \"function\":\n return ZodParsedType.function;\n case \"bigint\":\n return ZodParsedType.bigint;\n case \"symbol\":\n return ZodParsedType.symbol;\n case \"object\":\n if (Array.isArray(data)) {\n return ZodParsedType.array;\n }\n if (data === null) {\n return ZodParsedType.null;\n }\n if (data.then && typeof data.then === \"function\" && data.catch && typeof data.catch === \"function\") {\n return ZodParsedType.promise;\n }\n if (typeof Map !== \"undefined\" && data instanceof Map) {\n return ZodParsedType.map;\n }\n if (typeof Set !== \"undefined\" && data instanceof Set) {\n return ZodParsedType.set;\n }\n if (typeof Date !== \"undefined\" && data instanceof Date) {\n return ZodParsedType.date;\n }\n return ZodParsedType.object;\n default:\n return ZodParsedType.unknown;\n }\n}, \"getParsedType\");\nvar ZodIssueCode = util.arrayToEnum([\n \"invalid_type\",\n \"invalid_literal\",\n \"custom\",\n \"invalid_union\",\n \"invalid_union_discriminator\",\n \"invalid_enum_value\",\n \"unrecognized_keys\",\n \"invalid_arguments\",\n \"invalid_return_type\",\n \"invalid_date\",\n \"invalid_string\",\n \"too_small\",\n \"too_big\",\n \"invalid_intersection_types\",\n \"not_multiple_of\",\n \"not_finite\"\n]);\nvar quotelessJson = /* @__PURE__ */ __name((obj) => {\n const json = JSON.stringify(obj, null, 2);\n return json.replace(/\"([^\"]+)\":/g, \"$1:\");\n}, \"quotelessJson\");\nvar _ZodError = class _ZodError extends Error {\n constructor(issues) {\n super();\n this.issues = [];\n this.addIssue = (sub) => {\n this.issues = [...this.issues, sub];\n };\n this.addIssues = (subs = []) => {\n this.issues = [...this.issues, ...subs];\n };\n const actualProto = new.target.prototype;\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(this, actualProto);\n } else {\n this.__proto__ = actualProto;\n }\n this.name = \"ZodError\";\n this.issues = issues;\n }\n get errors() {\n return this.issues;\n }\n format(_mapper) {\n const mapper = _mapper || function(issue) {\n return issue.message;\n };\n const fieldErrors = { _errors: [] };\n const processError = /* @__PURE__ */ __name((error) => {\n for (const issue of error.issues) {\n if (issue.code === \"invalid_union\") {\n issue.unionErrors.map(processError);\n } else if (issue.code === \"invalid_return_type\") {\n processError(issue.returnTypeError);\n } else if (issue.code === \"invalid_arguments\") {\n processError(issue.argumentsError);\n } else if (issue.path.length === 0) {\n fieldErrors._errors.push(mapper(issue));\n } else {\n let curr = fieldErrors;\n let i = 0;\n while (i < issue.path.length) {\n const el = issue.path[i];\n const terminal = i === issue.path.length - 1;\n if (!terminal) {\n curr[el] = curr[el] || { _errors: [] };\n } else {\n curr[el] = curr[el] || { _errors: [] };\n curr[el]._errors.push(mapper(issue));\n }\n curr = curr[el];\n i++;\n }\n }\n }\n }, \"processError\");\n processError(this);\n return fieldErrors;\n }\n toString() {\n return this.message;\n }\n get message() {\n return JSON.stringify(this.issues, util.jsonStringifyReplacer, 2);\n }\n get isEmpty() {\n return this.issues.length === 0;\n }\n flatten(mapper = (issue) => issue.message) {\n const fieldErrors = {};\n const formErrors = [];\n for (const sub of this.issues) {\n if (sub.path.length > 0) {\n fieldErrors[sub.path[0]] = fieldErrors[sub.path[0]] || [];\n fieldErrors[sub.path[0]].push(mapper(sub));\n } else {\n formErrors.push(mapper(sub));\n }\n }\n return { formErrors, fieldErrors };\n }\n get formErrors() {\n return this.flatten();\n }\n};\n__name(_ZodError, \"ZodError\");\nvar ZodError = _ZodError;\nZodError.create = (issues) => {\n const error = new ZodError(issues);\n return error;\n};\nvar errorMap = /* @__PURE__ */ __name((issue, _ctx) => {\n let message;\n switch (issue.code) {\n case ZodIssueCode.invalid_type:\n if (issue.received === ZodParsedType.undefined) {\n message = \"Required\";\n } else {\n message = `Expected ${issue.expected}, received ${issue.received}`;\n }\n break;\n case ZodIssueCode.invalid_literal:\n message = `Invalid literal value, expected ${JSON.stringify(issue.expected, util.jsonStringifyReplacer)}`;\n break;\n case ZodIssueCode.unrecognized_keys:\n message = `Unrecognized key(s) in object: ${util.joinValues(issue.keys, \", \")}`;\n break;\n case ZodIssueCode.invalid_union:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_union_discriminator:\n message = `Invalid discriminator value. Expected ${util.joinValues(issue.options)}`;\n break;\n case ZodIssueCode.invalid_enum_value:\n message = `Invalid enum value. Expected ${util.joinValues(issue.options)}, received '${issue.received}'`;\n break;\n case ZodIssueCode.invalid_arguments:\n message = `Invalid function arguments`;\n break;\n case ZodIssueCode.invalid_return_type:\n message = `Invalid function return type`;\n break;\n case ZodIssueCode.invalid_date:\n message = `Invalid date`;\n break;\n case ZodIssueCode.invalid_string:\n if (typeof issue.validation === \"object\") {\n if (\"includes\" in issue.validation) {\n message = `Invalid input: must include \"${issue.validation.includes}\"`;\n if (typeof issue.validation.position === \"number\") {\n message = `${message} at one or more positions greater than or equal to ${issue.validation.position}`;\n }\n } else if (\"startsWith\" in issue.validation) {\n message = `Invalid input: must start with \"${issue.validation.startsWith}\"`;\n } else if (\"endsWith\" in issue.validation) {\n message = `Invalid input: must end with \"${issue.validation.endsWith}\"`;\n } else {\n util.assertNever(issue.validation);\n }\n } else if (issue.validation !== \"regex\") {\n message = `Invalid ${issue.validation}`;\n } else {\n message = \"Invalid\";\n }\n break;\n case ZodIssueCode.too_small:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `more than`} ${issue.minimum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? \"exactly\" : issue.inclusive ? `at least` : `over`} ${issue.minimum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${issue.minimum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly equal to ` : issue.inclusive ? `greater than or equal to ` : `greater than `}${new Date(Number(issue.minimum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.too_big:\n if (issue.type === \"array\")\n message = `Array must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `less than`} ${issue.maximum} element(s)`;\n else if (issue.type === \"string\")\n message = `String must contain ${issue.exact ? `exactly` : issue.inclusive ? `at most` : `under`} ${issue.maximum} character(s)`;\n else if (issue.type === \"number\")\n message = `Number must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"bigint\")\n message = `BigInt must be ${issue.exact ? `exactly` : issue.inclusive ? `less than or equal to` : `less than`} ${issue.maximum}`;\n else if (issue.type === \"date\")\n message = `Date must be ${issue.exact ? `exactly` : issue.inclusive ? `smaller than or equal to` : `smaller than`} ${new Date(Number(issue.maximum))}`;\n else\n message = \"Invalid input\";\n break;\n case ZodIssueCode.custom:\n message = `Invalid input`;\n break;\n case ZodIssueCode.invalid_intersection_types:\n message = `Intersection results could not be merged`;\n break;\n case ZodIssueCode.not_multiple_of:\n message = `Number must be a multiple of ${issue.multipleOf}`;\n break;\n case ZodIssueCode.not_finite:\n message = \"Number must be finite\";\n break;\n default:\n message = _ctx.defaultError;\n util.assertNever(issue);\n }\n return { message };\n}, \"errorMap\");\nvar overrideErrorMap = errorMap;\nfunction setErrorMap(map) {\n overrideErrorMap = map;\n}\n__name(setErrorMap, \"setErrorMap\");\nfunction getErrorMap() {\n return overrideErrorMap;\n}\n__name(getErrorMap, \"getErrorMap\");\nvar makeIssue = /* @__PURE__ */ __name((params) => {\n const { data, path, errorMaps, issueData } = params;\n const fullPath = [...path, ...issueData.path || []];\n const fullIssue = {\n ...issueData,\n path: fullPath\n };\n let errorMessage = \"\";\n const maps = errorMaps.filter((m) => !!m).slice().reverse();\n for (const map of maps) {\n errorMessage = map(fullIssue, { data, defaultError: errorMessage }).message;\n }\n return {\n ...issueData,\n path: fullPath,\n message: issueData.message || errorMessage\n };\n}, \"makeIssue\");\nvar EMPTY_PATH = [];\nfunction addIssueToContext(ctx, issueData) {\n const issue = makeIssue({\n issueData,\n data: ctx.data,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap\n // then global default map\n ].filter((x) => !!x)\n });\n ctx.common.issues.push(issue);\n}\n__name(addIssueToContext, \"addIssueToContext\");\nvar _ParseStatus = class _ParseStatus {\n constructor() {\n this.value = \"valid\";\n }\n dirty() {\n if (this.value === \"valid\")\n this.value = \"dirty\";\n }\n abort() {\n if (this.value !== \"aborted\")\n this.value = \"aborted\";\n }\n static mergeArray(status, results) {\n const arrayValue = [];\n for (const s of results) {\n if (s.status === \"aborted\")\n return INVALID;\n if (s.status === \"dirty\")\n status.dirty();\n arrayValue.push(s.value);\n }\n return { status: status.value, value: arrayValue };\n }\n static async mergeObjectAsync(status, pairs) {\n const syncPairs = [];\n for (const pair of pairs) {\n syncPairs.push({\n key: await pair.key,\n value: await pair.value\n });\n }\n return _ParseStatus.mergeObjectSync(status, syncPairs);\n }\n static mergeObjectSync(status, pairs) {\n const finalObject = {};\n for (const pair of pairs) {\n const { key, value } = pair;\n if (key.status === \"aborted\")\n return INVALID;\n if (value.status === \"aborted\")\n return INVALID;\n if (key.status === \"dirty\")\n status.dirty();\n if (value.status === \"dirty\")\n status.dirty();\n if (key.value !== \"__proto__\" && (typeof value.value !== \"undefined\" || pair.alwaysSet)) {\n finalObject[key.value] = value.value;\n }\n }\n return { status: status.value, value: finalObject };\n }\n};\n__name(_ParseStatus, \"ParseStatus\");\nvar ParseStatus = _ParseStatus;\nvar INVALID = Object.freeze({\n status: \"aborted\"\n});\nvar DIRTY = /* @__PURE__ */ __name((value) => ({ status: \"dirty\", value }), \"DIRTY\");\nvar OK = /* @__PURE__ */ __name((value) => ({ status: \"valid\", value }), \"OK\");\nvar isAborted = /* @__PURE__ */ __name((x) => x.status === \"aborted\", \"isAborted\");\nvar isDirty = /* @__PURE__ */ __name((x) => x.status === \"dirty\", \"isDirty\");\nvar isValid = /* @__PURE__ */ __name((x) => x.status === \"valid\", \"isValid\");\nvar isAsync = /* @__PURE__ */ __name((x) => typeof Promise !== \"undefined\" && x instanceof Promise, \"isAsync\");\nvar errorUtil;\n(function(errorUtil2) {\n errorUtil2.errToObj = (message) => typeof message === \"string\" ? { message } : message || {};\n errorUtil2.toString = (message) => typeof message === \"string\" ? message : message === null || message === void 0 ? void 0 : message.message;\n})(errorUtil || (errorUtil = {}));\nvar _ParseInputLazyPath = class _ParseInputLazyPath {\n constructor(parent, value, path, key) {\n this._cachedPath = [];\n this.parent = parent;\n this.data = value;\n this._path = path;\n this._key = key;\n }\n get path() {\n if (!this._cachedPath.length) {\n if (this._key instanceof Array) {\n this._cachedPath.push(...this._path, ...this._key);\n } else {\n this._cachedPath.push(...this._path, this._key);\n }\n }\n return this._cachedPath;\n }\n};\n__name(_ParseInputLazyPath, \"ParseInputLazyPath\");\nvar ParseInputLazyPath = _ParseInputLazyPath;\nvar handleResult = /* @__PURE__ */ __name((ctx, result) => {\n if (isValid(result)) {\n return { success: true, data: result.value };\n } else {\n if (!ctx.common.issues.length) {\n throw new Error(\"Validation failed but no issues detected.\");\n }\n return {\n success: false,\n get error() {\n if (this._error)\n return this._error;\n const error = new ZodError(ctx.common.issues);\n this._error = error;\n return this._error;\n }\n };\n }\n}, \"handleResult\");\nfunction processCreateParams(params) {\n if (!params)\n return {};\n const { errorMap: errorMap3, invalid_type_error, required_error, description } = params;\n if (errorMap3 && (invalid_type_error || required_error)) {\n throw new Error(`Can't use \"invalid_type_error\" or \"required_error\" in conjunction with custom error map.`);\n }\n if (errorMap3)\n return { errorMap: errorMap3, description };\n const customMap = /* @__PURE__ */ __name((iss, ctx) => {\n if (iss.code !== \"invalid_type\")\n return { message: ctx.defaultError };\n if (typeof ctx.data === \"undefined\") {\n return { message: required_error !== null && required_error !== void 0 ? required_error : ctx.defaultError };\n }\n return { message: invalid_type_error !== null && invalid_type_error !== void 0 ? invalid_type_error : ctx.defaultError };\n }, \"customMap\");\n return { errorMap: customMap, description };\n}\n__name(processCreateParams, \"processCreateParams\");\nvar _ZodType = class _ZodType {\n constructor(def) {\n this.spa = this.safeParseAsync;\n this._def = def;\n this.parse = this.parse.bind(this);\n this.safeParse = this.safeParse.bind(this);\n this.parseAsync = this.parseAsync.bind(this);\n this.safeParseAsync = this.safeParseAsync.bind(this);\n this.spa = this.spa.bind(this);\n this.refine = this.refine.bind(this);\n this.refinement = this.refinement.bind(this);\n this.superRefine = this.superRefine.bind(this);\n this.optional = this.optional.bind(this);\n this.nullable = this.nullable.bind(this);\n this.nullish = this.nullish.bind(this);\n this.array = this.array.bind(this);\n this.promise = this.promise.bind(this);\n this.or = this.or.bind(this);\n this.and = this.and.bind(this);\n this.transform = this.transform.bind(this);\n this.brand = this.brand.bind(this);\n this.default = this.default.bind(this);\n this.catch = this.catch.bind(this);\n this.describe = this.describe.bind(this);\n this.pipe = this.pipe.bind(this);\n this.readonly = this.readonly.bind(this);\n this.isNullable = this.isNullable.bind(this);\n this.isOptional = this.isOptional.bind(this);\n }\n get description() {\n return this._def.description;\n }\n _getType(input) {\n return getParsedType(input.data);\n }\n _getOrReturnCtx(input, ctx) {\n return ctx || {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent\n };\n }\n _processInputParams(input) {\n return {\n status: new ParseStatus(),\n ctx: {\n common: input.parent.common,\n data: input.data,\n parsedType: getParsedType(input.data),\n schemaErrorMap: this._def.errorMap,\n path: input.path,\n parent: input.parent\n }\n };\n }\n _parseSync(input) {\n const result = this._parse(input);\n if (isAsync(result)) {\n throw new Error(\"Synchronous parse encountered promise.\");\n }\n return result;\n }\n _parseAsync(input) {\n const result = this._parse(input);\n return Promise.resolve(result);\n }\n parse(data, params) {\n const result = this.safeParse(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n safeParse(data, params) {\n var _a;\n const ctx = {\n common: {\n issues: [],\n async: (_a = params === null || params === void 0 ? void 0 : params.async) !== null && _a !== void 0 ? _a : false,\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n const result = this._parseSync({ data, path: ctx.path, parent: ctx });\n return handleResult(ctx, result);\n }\n async parseAsync(data, params) {\n const result = await this.safeParseAsync(data, params);\n if (result.success)\n return result.data;\n throw result.error;\n }\n async safeParseAsync(data, params) {\n const ctx = {\n common: {\n issues: [],\n contextualErrorMap: params === null || params === void 0 ? void 0 : params.errorMap,\n async: true\n },\n path: (params === null || params === void 0 ? void 0 : params.path) || [],\n schemaErrorMap: this._def.errorMap,\n parent: null,\n data,\n parsedType: getParsedType(data)\n };\n const maybeAsyncResult = this._parse({ data, path: ctx.path, parent: ctx });\n const result = await (isAsync(maybeAsyncResult) ? maybeAsyncResult : Promise.resolve(maybeAsyncResult));\n return handleResult(ctx, result);\n }\n refine(check, message) {\n const getIssueProperties = /* @__PURE__ */ __name((val) => {\n if (typeof message === \"string\" || typeof message === \"undefined\") {\n return { message };\n } else if (typeof message === \"function\") {\n return message(val);\n } else {\n return message;\n }\n }, \"getIssueProperties\");\n return this._refinement((val, ctx) => {\n const result = check(val);\n const setError = /* @__PURE__ */ __name(() => ctx.addIssue({\n code: ZodIssueCode.custom,\n ...getIssueProperties(val)\n }), \"setError\");\n if (typeof Promise !== \"undefined\" && result instanceof Promise) {\n return result.then((data) => {\n if (!data) {\n setError();\n return false;\n } else {\n return true;\n }\n });\n }\n if (!result) {\n setError();\n return false;\n } else {\n return true;\n }\n });\n }\n refinement(check, refinementData) {\n return this._refinement((val, ctx) => {\n if (!check(val)) {\n ctx.addIssue(typeof refinementData === \"function\" ? refinementData(val, ctx) : refinementData);\n return false;\n } else {\n return true;\n }\n });\n }\n _refinement(refinement) {\n return new ZodEffects({\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"refinement\", refinement }\n });\n }\n superRefine(refinement) {\n return this._refinement(refinement);\n }\n optional() {\n return ZodOptional.create(this, this._def);\n }\n nullable() {\n return ZodNullable.create(this, this._def);\n }\n nullish() {\n return this.nullable().optional();\n }\n array() {\n return ZodArray.create(this, this._def);\n }\n promise() {\n return ZodPromise.create(this, this._def);\n }\n or(option) {\n return ZodUnion.create([this, option], this._def);\n }\n and(incoming) {\n return ZodIntersection.create(this, incoming, this._def);\n }\n transform(transform) {\n return new ZodEffects({\n ...processCreateParams(this._def),\n schema: this,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect: { type: \"transform\", transform }\n });\n }\n default(def) {\n const defaultValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodDefault({\n ...processCreateParams(this._def),\n innerType: this,\n defaultValue: defaultValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodDefault\n });\n }\n brand() {\n return new ZodBranded({\n typeName: ZodFirstPartyTypeKind.ZodBranded,\n type: this,\n ...processCreateParams(this._def)\n });\n }\n catch(def) {\n const catchValueFunc = typeof def === \"function\" ? def : () => def;\n return new ZodCatch({\n ...processCreateParams(this._def),\n innerType: this,\n catchValue: catchValueFunc,\n typeName: ZodFirstPartyTypeKind.ZodCatch\n });\n }\n describe(description) {\n const This = this.constructor;\n return new This({\n ...this._def,\n description\n });\n }\n pipe(target) {\n return ZodPipeline.create(this, target);\n }\n readonly() {\n return ZodReadonly.create(this);\n }\n isOptional() {\n return this.safeParse(void 0).success;\n }\n isNullable() {\n return this.safeParse(null).success;\n }\n};\n__name(_ZodType, \"ZodType\");\nvar ZodType = _ZodType;\nvar cuidRegex = /^c[^\\s-]{8,}$/i;\nvar cuid2Regex = /^[a-z][a-z0-9]*$/;\nvar ulidRegex = /^[0-9A-HJKMNP-TV-Z]{26}$/;\nvar uuidRegex = /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/i;\nvar emailRegex = /^(?!\\.)(?!.*\\.\\.)([A-Z0-9_+-\\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\\-]*\\.)+[A-Z]{2,}$/i;\nvar _emojiRegex = `^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$`;\nvar emojiRegex;\nvar ipv4Regex = /^(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))$/;\nvar ipv6Regex = /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/;\nvar datetimeRegex = /* @__PURE__ */ __name((args) => {\n if (args.precision) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n } else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\.\\\\d{${args.precision}}Z$`);\n }\n } else if (args.precision === 0) {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n } else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}Z$`);\n }\n } else {\n if (args.offset) {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)$`);\n } else {\n return new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}T\\\\d{2}:\\\\d{2}:\\\\d{2}(\\\\.\\\\d+)?Z$`);\n }\n }\n}, \"datetimeRegex\");\nfunction isValidIP(ip, version) {\n if ((version === \"v4\" || !version) && ipv4Regex.test(ip)) {\n return true;\n }\n if ((version === \"v6\" || !version) && ipv6Regex.test(ip)) {\n return true;\n }\n return false;\n}\n__name(isValidIP, \"isValidIP\");\nvar _ZodString = class _ZodString extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = String(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.string) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(\n ctx2,\n {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.string,\n received: ctx2.parsedType\n }\n //\n );\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = void 0;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.length < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n if (input.data.length > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"length\") {\n const tooBig = input.data.length > check.value;\n const tooSmall = input.data.length < check.value;\n if (tooBig || tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n if (tooBig) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message\n });\n } else if (tooSmall) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"string\",\n inclusive: true,\n exact: true,\n message: check.message\n });\n }\n status.dirty();\n }\n } else if (check.kind === \"email\") {\n if (!emailRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"email\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"emoji\") {\n if (!emojiRegex) {\n emojiRegex = new RegExp(_emojiRegex, \"u\");\n }\n if (!emojiRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"emoji\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"uuid\") {\n if (!uuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"uuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cuid\") {\n if (!cuidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"cuid2\") {\n if (!cuid2Regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"cuid2\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"ulid\") {\n if (!ulidRegex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ulid\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"url\") {\n try {\n new URL(input.data);\n } catch (_a) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"url\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"regex\") {\n check.regex.lastIndex = 0;\n const testResult = check.regex.test(input.data);\n if (!testResult) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"regex\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"trim\") {\n input.data = input.data.trim();\n } else if (check.kind === \"includes\") {\n if (!input.data.includes(check.value, check.position)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { includes: check.value, position: check.position },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"toLowerCase\") {\n input.data = input.data.toLowerCase();\n } else if (check.kind === \"toUpperCase\") {\n input.data = input.data.toUpperCase();\n } else if (check.kind === \"startsWith\") {\n if (!input.data.startsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { startsWith: check.value },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"endsWith\") {\n if (!input.data.endsWith(check.value)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: { endsWith: check.value },\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"datetime\") {\n const regex = datetimeRegex(check);\n if (!regex.test(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_string,\n validation: \"datetime\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"ip\") {\n if (!isValidIP(input.data, check.version)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n validation: \"ip\",\n code: ZodIssueCode.invalid_string,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n _regex(regex, validation, message) {\n return this.refinement((data) => regex.test(data), {\n validation,\n code: ZodIssueCode.invalid_string,\n ...errorUtil.errToObj(message)\n });\n }\n _addCheck(check) {\n return new _ZodString({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n email(message) {\n return this._addCheck({ kind: \"email\", ...errorUtil.errToObj(message) });\n }\n url(message) {\n return this._addCheck({ kind: \"url\", ...errorUtil.errToObj(message) });\n }\n emoji(message) {\n return this._addCheck({ kind: \"emoji\", ...errorUtil.errToObj(message) });\n }\n uuid(message) {\n return this._addCheck({ kind: \"uuid\", ...errorUtil.errToObj(message) });\n }\n cuid(message) {\n return this._addCheck({ kind: \"cuid\", ...errorUtil.errToObj(message) });\n }\n cuid2(message) {\n return this._addCheck({ kind: \"cuid2\", ...errorUtil.errToObj(message) });\n }\n ulid(message) {\n return this._addCheck({ kind: \"ulid\", ...errorUtil.errToObj(message) });\n }\n ip(options) {\n return this._addCheck({ kind: \"ip\", ...errorUtil.errToObj(options) });\n }\n datetime(options) {\n var _a;\n if (typeof options === \"string\") {\n return this._addCheck({\n kind: \"datetime\",\n precision: null,\n offset: false,\n message: options\n });\n }\n return this._addCheck({\n kind: \"datetime\",\n precision: typeof (options === null || options === void 0 ? void 0 : options.precision) === \"undefined\" ? null : options === null || options === void 0 ? void 0 : options.precision,\n offset: (_a = options === null || options === void 0 ? void 0 : options.offset) !== null && _a !== void 0 ? _a : false,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)\n });\n }\n regex(regex, message) {\n return this._addCheck({\n kind: \"regex\",\n regex,\n ...errorUtil.errToObj(message)\n });\n }\n includes(value, options) {\n return this._addCheck({\n kind: \"includes\",\n value,\n position: options === null || options === void 0 ? void 0 : options.position,\n ...errorUtil.errToObj(options === null || options === void 0 ? void 0 : options.message)\n });\n }\n startsWith(value, message) {\n return this._addCheck({\n kind: \"startsWith\",\n value,\n ...errorUtil.errToObj(message)\n });\n }\n endsWith(value, message) {\n return this._addCheck({\n kind: \"endsWith\",\n value,\n ...errorUtil.errToObj(message)\n });\n }\n min(minLength, message) {\n return this._addCheck({\n kind: \"min\",\n value: minLength,\n ...errorUtil.errToObj(message)\n });\n }\n max(maxLength, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxLength,\n ...errorUtil.errToObj(message)\n });\n }\n length(len, message) {\n return this._addCheck({\n kind: \"length\",\n value: len,\n ...errorUtil.errToObj(message)\n });\n }\n /**\n * @deprecated Use z.string().min(1) instead.\n * @see {@link ZodString.min}\n */\n nonempty(message) {\n return this.min(1, errorUtil.errToObj(message));\n }\n trim() {\n return new _ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"trim\" }]\n });\n }\n toLowerCase() {\n return new _ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toLowerCase\" }]\n });\n }\n toUpperCase() {\n return new _ZodString({\n ...this._def,\n checks: [...this._def.checks, { kind: \"toUpperCase\" }]\n });\n }\n get isDatetime() {\n return !!this._def.checks.find((ch) => ch.kind === \"datetime\");\n }\n get isEmail() {\n return !!this._def.checks.find((ch) => ch.kind === \"email\");\n }\n get isURL() {\n return !!this._def.checks.find((ch) => ch.kind === \"url\");\n }\n get isEmoji() {\n return !!this._def.checks.find((ch) => ch.kind === \"emoji\");\n }\n get isUUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"uuid\");\n }\n get isCUID() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid\");\n }\n get isCUID2() {\n return !!this._def.checks.find((ch) => ch.kind === \"cuid2\");\n }\n get isULID() {\n return !!this._def.checks.find((ch) => ch.kind === \"ulid\");\n }\n get isIP() {\n return !!this._def.checks.find((ch) => ch.kind === \"ip\");\n }\n get minLength() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxLength() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n};\n__name(_ZodString, \"ZodString\");\nvar ZodString = _ZodString;\nZodString.create = (params) => {\n var _a;\n return new ZodString({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodString,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params)\n });\n};\nfunction floatSafeRemainder(val, step) {\n const valDecCount = (val.toString().split(\".\")[1] || \"\").length;\n const stepDecCount = (step.toString().split(\".\")[1] || \"\").length;\n const decCount = valDecCount > stepDecCount ? valDecCount : stepDecCount;\n const valInt = parseInt(val.toFixed(decCount).replace(\".\", \"\"));\n const stepInt = parseInt(step.toFixed(decCount).replace(\".\", \"\"));\n return valInt % stepInt / Math.pow(10, decCount);\n}\n__name(floatSafeRemainder, \"floatSafeRemainder\");\nvar _ZodNumber = class _ZodNumber extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n this.step = this.multipleOf;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = Number(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.number) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.number,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n let ctx = void 0;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"int\") {\n if (!util.isInteger(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: \"integer\",\n received: \"float\",\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: check.value,\n type: \"number\",\n inclusive: check.inclusive,\n exact: false,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"multipleOf\") {\n if (floatSafeRemainder(input.data, check.value) !== 0) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"finite\") {\n if (!Number.isFinite(input.data)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_finite,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new _ZodNumber({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message)\n }\n ]\n });\n }\n _addCheck(check) {\n return new _ZodNumber({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n int(message) {\n return this._addCheck({\n kind: \"int\",\n message: errorUtil.toString(message)\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: 0,\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message)\n });\n }\n finite(message) {\n return this._addCheck({\n kind: \"finite\",\n message: errorUtil.toString(message)\n });\n }\n safe(message) {\n return this._addCheck({\n kind: \"min\",\n inclusive: true,\n value: Number.MIN_SAFE_INTEGER,\n message: errorUtil.toString(message)\n })._addCheck({\n kind: \"max\",\n inclusive: true,\n value: Number.MAX_SAFE_INTEGER,\n message: errorUtil.toString(message)\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n get isInt() {\n return !!this._def.checks.find((ch) => ch.kind === \"int\" || ch.kind === \"multipleOf\" && util.isInteger(ch.value));\n }\n get isFinite() {\n let max = null, min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"finite\" || ch.kind === \"int\" || ch.kind === \"multipleOf\") {\n return true;\n } else if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n } else if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return Number.isFinite(min) && Number.isFinite(max);\n }\n};\n__name(_ZodNumber, \"ZodNumber\");\nvar ZodNumber = _ZodNumber;\nZodNumber.create = (params) => {\n return new ZodNumber({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodNumber,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params)\n });\n};\nvar _ZodBigInt = class _ZodBigInt extends ZodType {\n constructor() {\n super(...arguments);\n this.min = this.gte;\n this.max = this.lte;\n }\n _parse(input) {\n if (this._def.coerce) {\n input.data = BigInt(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.bigint) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.bigint,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n let ctx = void 0;\n const status = new ParseStatus();\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n const tooSmall = check.inclusive ? input.data < check.value : input.data <= check.value;\n if (tooSmall) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n type: \"bigint\",\n minimum: check.value,\n inclusive: check.inclusive,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n const tooBig = check.inclusive ? input.data > check.value : input.data >= check.value;\n if (tooBig) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n type: \"bigint\",\n maximum: check.value,\n inclusive: check.inclusive,\n message: check.message\n });\n status.dirty();\n }\n } else if (check.kind === \"multipleOf\") {\n if (input.data % check.value !== BigInt(0)) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.not_multiple_of,\n multipleOf: check.value,\n message: check.message\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return { status: status.value, value: input.data };\n }\n gte(value, message) {\n return this.setLimit(\"min\", value, true, errorUtil.toString(message));\n }\n gt(value, message) {\n return this.setLimit(\"min\", value, false, errorUtil.toString(message));\n }\n lte(value, message) {\n return this.setLimit(\"max\", value, true, errorUtil.toString(message));\n }\n lt(value, message) {\n return this.setLimit(\"max\", value, false, errorUtil.toString(message));\n }\n setLimit(kind, value, inclusive, message) {\n return new _ZodBigInt({\n ...this._def,\n checks: [\n ...this._def.checks,\n {\n kind,\n value,\n inclusive,\n message: errorUtil.toString(message)\n }\n ]\n });\n }\n _addCheck(check) {\n return new _ZodBigInt({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n positive(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n negative(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: false,\n message: errorUtil.toString(message)\n });\n }\n nonpositive(message) {\n return this._addCheck({\n kind: \"max\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n nonnegative(message) {\n return this._addCheck({\n kind: \"min\",\n value: BigInt(0),\n inclusive: true,\n message: errorUtil.toString(message)\n });\n }\n multipleOf(value, message) {\n return this._addCheck({\n kind: \"multipleOf\",\n value,\n message: errorUtil.toString(message)\n });\n }\n get minValue() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min;\n }\n get maxValue() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max;\n }\n};\n__name(_ZodBigInt, \"ZodBigInt\");\nvar ZodBigInt = _ZodBigInt;\nZodBigInt.create = (params) => {\n var _a;\n return new ZodBigInt({\n checks: [],\n typeName: ZodFirstPartyTypeKind.ZodBigInt,\n coerce: (_a = params === null || params === void 0 ? void 0 : params.coerce) !== null && _a !== void 0 ? _a : false,\n ...processCreateParams(params)\n });\n};\nvar _ZodBoolean = class _ZodBoolean extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = Boolean(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.boolean) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.boolean,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n};\n__name(_ZodBoolean, \"ZodBoolean\");\nvar ZodBoolean = _ZodBoolean;\nZodBoolean.create = (params) => {\n return new ZodBoolean({\n typeName: ZodFirstPartyTypeKind.ZodBoolean,\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n ...processCreateParams(params)\n });\n};\nvar _ZodDate = class _ZodDate extends ZodType {\n _parse(input) {\n if (this._def.coerce) {\n input.data = new Date(input.data);\n }\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.date) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.date,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n if (isNaN(input.data.getTime())) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_date\n });\n return INVALID;\n }\n const status = new ParseStatus();\n let ctx = void 0;\n for (const check of this._def.checks) {\n if (check.kind === \"min\") {\n if (input.data.getTime() < check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n message: check.message,\n inclusive: true,\n exact: false,\n minimum: check.value,\n type: \"date\"\n });\n status.dirty();\n }\n } else if (check.kind === \"max\") {\n if (input.data.getTime() > check.value) {\n ctx = this._getOrReturnCtx(input, ctx);\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n message: check.message,\n inclusive: true,\n exact: false,\n maximum: check.value,\n type: \"date\"\n });\n status.dirty();\n }\n } else {\n util.assertNever(check);\n }\n }\n return {\n status: status.value,\n value: new Date(input.data.getTime())\n };\n }\n _addCheck(check) {\n return new _ZodDate({\n ...this._def,\n checks: [...this._def.checks, check]\n });\n }\n min(minDate, message) {\n return this._addCheck({\n kind: \"min\",\n value: minDate.getTime(),\n message: errorUtil.toString(message)\n });\n }\n max(maxDate, message) {\n return this._addCheck({\n kind: \"max\",\n value: maxDate.getTime(),\n message: errorUtil.toString(message)\n });\n }\n get minDate() {\n let min = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"min\") {\n if (min === null || ch.value > min)\n min = ch.value;\n }\n }\n return min != null ? new Date(min) : null;\n }\n get maxDate() {\n let max = null;\n for (const ch of this._def.checks) {\n if (ch.kind === \"max\") {\n if (max === null || ch.value < max)\n max = ch.value;\n }\n }\n return max != null ? new Date(max) : null;\n }\n};\n__name(_ZodDate, \"ZodDate\");\nvar ZodDate = _ZodDate;\nZodDate.create = (params) => {\n return new ZodDate({\n checks: [],\n coerce: (params === null || params === void 0 ? void 0 : params.coerce) || false,\n typeName: ZodFirstPartyTypeKind.ZodDate,\n ...processCreateParams(params)\n });\n};\nvar _ZodSymbol = class _ZodSymbol extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.symbol) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.symbol,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n};\n__name(_ZodSymbol, \"ZodSymbol\");\nvar ZodSymbol = _ZodSymbol;\nZodSymbol.create = (params) => {\n return new ZodSymbol({\n typeName: ZodFirstPartyTypeKind.ZodSymbol,\n ...processCreateParams(params)\n });\n};\nvar _ZodUndefined = class _ZodUndefined extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.undefined,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n};\n__name(_ZodUndefined, \"ZodUndefined\");\nvar ZodUndefined = _ZodUndefined;\nZodUndefined.create = (params) => {\n return new ZodUndefined({\n typeName: ZodFirstPartyTypeKind.ZodUndefined,\n ...processCreateParams(params)\n });\n};\nvar _ZodNull = class _ZodNull extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.null) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.null,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n};\n__name(_ZodNull, \"ZodNull\");\nvar ZodNull = _ZodNull;\nZodNull.create = (params) => {\n return new ZodNull({\n typeName: ZodFirstPartyTypeKind.ZodNull,\n ...processCreateParams(params)\n });\n};\nvar _ZodAny = class _ZodAny extends ZodType {\n constructor() {\n super(...arguments);\n this._any = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n};\n__name(_ZodAny, \"ZodAny\");\nvar ZodAny = _ZodAny;\nZodAny.create = (params) => {\n return new ZodAny({\n typeName: ZodFirstPartyTypeKind.ZodAny,\n ...processCreateParams(params)\n });\n};\nvar _ZodUnknown = class _ZodUnknown extends ZodType {\n constructor() {\n super(...arguments);\n this._unknown = true;\n }\n _parse(input) {\n return OK(input.data);\n }\n};\n__name(_ZodUnknown, \"ZodUnknown\");\nvar ZodUnknown = _ZodUnknown;\nZodUnknown.create = (params) => {\n return new ZodUnknown({\n typeName: ZodFirstPartyTypeKind.ZodUnknown,\n ...processCreateParams(params)\n });\n};\nvar _ZodNever = class _ZodNever extends ZodType {\n _parse(input) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.never,\n received: ctx.parsedType\n });\n return INVALID;\n }\n};\n__name(_ZodNever, \"ZodNever\");\nvar ZodNever = _ZodNever;\nZodNever.create = (params) => {\n return new ZodNever({\n typeName: ZodFirstPartyTypeKind.ZodNever,\n ...processCreateParams(params)\n });\n};\nvar _ZodVoid = class _ZodVoid extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.undefined) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.void,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return OK(input.data);\n }\n};\n__name(_ZodVoid, \"ZodVoid\");\nvar ZodVoid = _ZodVoid;\nZodVoid.create = (params) => {\n return new ZodVoid({\n typeName: ZodFirstPartyTypeKind.ZodVoid,\n ...processCreateParams(params)\n });\n};\nvar _ZodArray = class _ZodArray extends ZodType {\n _parse(input) {\n const { ctx, status } = this._processInputParams(input);\n const def = this._def;\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType\n });\n return INVALID;\n }\n if (def.exactLength !== null) {\n const tooBig = ctx.data.length > def.exactLength.value;\n const tooSmall = ctx.data.length < def.exactLength.value;\n if (tooBig || tooSmall) {\n addIssueToContext(ctx, {\n code: tooBig ? ZodIssueCode.too_big : ZodIssueCode.too_small,\n minimum: tooSmall ? def.exactLength.value : void 0,\n maximum: tooBig ? def.exactLength.value : void 0,\n type: \"array\",\n inclusive: true,\n exact: true,\n message: def.exactLength.message\n });\n status.dirty();\n }\n }\n if (def.minLength !== null) {\n if (ctx.data.length < def.minLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.minLength.message\n });\n status.dirty();\n }\n }\n if (def.maxLength !== null) {\n if (ctx.data.length > def.maxLength.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxLength.value,\n type: \"array\",\n inclusive: true,\n exact: false,\n message: def.maxLength.message\n });\n status.dirty();\n }\n }\n if (ctx.common.async) {\n return Promise.all([...ctx.data].map((item, i) => {\n return def.type._parseAsync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n })).then((result2) => {\n return ParseStatus.mergeArray(status, result2);\n });\n }\n const result = [...ctx.data].map((item, i) => {\n return def.type._parseSync(new ParseInputLazyPath(ctx, item, ctx.path, i));\n });\n return ParseStatus.mergeArray(status, result);\n }\n get element() {\n return this._def.type;\n }\n min(minLength, message) {\n return new _ZodArray({\n ...this._def,\n minLength: { value: minLength, message: errorUtil.toString(message) }\n });\n }\n max(maxLength, message) {\n return new _ZodArray({\n ...this._def,\n maxLength: { value: maxLength, message: errorUtil.toString(message) }\n });\n }\n length(len, message) {\n return new _ZodArray({\n ...this._def,\n exactLength: { value: len, message: errorUtil.toString(message) }\n });\n }\n nonempty(message) {\n return this.min(1, message);\n }\n};\n__name(_ZodArray, \"ZodArray\");\nvar ZodArray = _ZodArray;\nZodArray.create = (schema, params) => {\n return new ZodArray({\n type: schema,\n minLength: null,\n maxLength: null,\n exactLength: null,\n typeName: ZodFirstPartyTypeKind.ZodArray,\n ...processCreateParams(params)\n });\n};\nfunction deepPartialify(schema) {\n if (schema instanceof ZodObject) {\n const newShape = {};\n for (const key in schema.shape) {\n const fieldSchema = schema.shape[key];\n newShape[key] = ZodOptional.create(deepPartialify(fieldSchema));\n }\n return new ZodObject({\n ...schema._def,\n shape: () => newShape\n });\n } else if (schema instanceof ZodArray) {\n return new ZodArray({\n ...schema._def,\n type: deepPartialify(schema.element)\n });\n } else if (schema instanceof ZodOptional) {\n return ZodOptional.create(deepPartialify(schema.unwrap()));\n } else if (schema instanceof ZodNullable) {\n return ZodNullable.create(deepPartialify(schema.unwrap()));\n } else if (schema instanceof ZodTuple) {\n return ZodTuple.create(schema.items.map((item) => deepPartialify(item)));\n } else {\n return schema;\n }\n}\n__name(deepPartialify, \"deepPartialify\");\nvar _ZodObject = class _ZodObject extends ZodType {\n constructor() {\n super(...arguments);\n this._cached = null;\n this.nonstrict = this.passthrough;\n this.augment = this.extend;\n }\n _getCached() {\n if (this._cached !== null)\n return this._cached;\n const shape = this._def.shape();\n const keys = util.objectKeys(shape);\n return this._cached = { shape, keys };\n }\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.object) {\n const ctx2 = this._getOrReturnCtx(input);\n addIssueToContext(ctx2, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx2.parsedType\n });\n return INVALID;\n }\n const { status, ctx } = this._processInputParams(input);\n const { shape, keys: shapeKeys } = this._getCached();\n const extraKeys = [];\n if (!(this._def.catchall instanceof ZodNever && this._def.unknownKeys === \"strip\")) {\n for (const key in ctx.data) {\n if (!shapeKeys.includes(key)) {\n extraKeys.push(key);\n }\n }\n }\n const pairs = [];\n for (const key of shapeKeys) {\n const keyValidator = shape[key];\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: keyValidator._parse(new ParseInputLazyPath(ctx, value, ctx.path, key)),\n alwaysSet: key in ctx.data\n });\n }\n if (this._def.catchall instanceof ZodNever) {\n const unknownKeys = this._def.unknownKeys;\n if (unknownKeys === \"passthrough\") {\n for (const key of extraKeys) {\n pairs.push({\n key: { status: \"valid\", value: key },\n value: { status: \"valid\", value: ctx.data[key] }\n });\n }\n } else if (unknownKeys === \"strict\") {\n if (extraKeys.length > 0) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.unrecognized_keys,\n keys: extraKeys\n });\n status.dirty();\n }\n } else if (unknownKeys === \"strip\")\n ;\n else {\n throw new Error(`Internal ZodObject error: invalid unknownKeys value.`);\n }\n } else {\n const catchall = this._def.catchall;\n for (const key of extraKeys) {\n const value = ctx.data[key];\n pairs.push({\n key: { status: \"valid\", value: key },\n value: catchall._parse(\n new ParseInputLazyPath(ctx, value, ctx.path, key)\n //, ctx.child(key), value, getParsedType(value)\n ),\n alwaysSet: key in ctx.data\n });\n }\n }\n if (ctx.common.async) {\n return Promise.resolve().then(async () => {\n const syncPairs = [];\n for (const pair of pairs) {\n const key = await pair.key;\n syncPairs.push({\n key,\n value: await pair.value,\n alwaysSet: pair.alwaysSet\n });\n }\n return syncPairs;\n }).then((syncPairs) => {\n return ParseStatus.mergeObjectSync(status, syncPairs);\n });\n } else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get shape() {\n return this._def.shape();\n }\n strict(message) {\n errorUtil.errToObj;\n return new _ZodObject({\n ...this._def,\n unknownKeys: \"strict\",\n ...message !== void 0 ? {\n errorMap: (issue, ctx) => {\n var _a, _b, _c, _d;\n const defaultError = (_c = (_b = (_a = this._def).errorMap) === null || _b === void 0 ? void 0 : _b.call(_a, issue, ctx).message) !== null && _c !== void 0 ? _c : ctx.defaultError;\n if (issue.code === \"unrecognized_keys\")\n return {\n message: (_d = errorUtil.errToObj(message).message) !== null && _d !== void 0 ? _d : defaultError\n };\n return {\n message: defaultError\n };\n }\n } : {}\n });\n }\n strip() {\n return new _ZodObject({\n ...this._def,\n unknownKeys: \"strip\"\n });\n }\n passthrough() {\n return new _ZodObject({\n ...this._def,\n unknownKeys: \"passthrough\"\n });\n }\n // const AugmentFactory =\n // <Def extends ZodObjectDef>(def: Def) =>\n // <Augmentation extends ZodRawShape>(\n // augmentation: Augmentation\n // ): ZodObject<\n // extendShape<ReturnType<Def[\"shape\"]>, Augmentation>,\n // Def[\"unknownKeys\"],\n // Def[\"catchall\"]\n // > => {\n // return new ZodObject({\n // ...def,\n // shape: () => ({\n // ...def.shape(),\n // ...augmentation,\n // }),\n // }) as any;\n // };\n extend(augmentation) {\n return new _ZodObject({\n ...this._def,\n shape: () => ({\n ...this._def.shape(),\n ...augmentation\n })\n });\n }\n /**\n * Prior to zod@1.0.12 there was a bug in the\n * inferred type of merged objects. Please\n * upgrade if you are experiencing issues.\n */\n merge(merging) {\n const merged = new _ZodObject({\n unknownKeys: merging._def.unknownKeys,\n catchall: merging._def.catchall,\n shape: () => ({\n ...this._def.shape(),\n ...merging._def.shape()\n }),\n typeName: ZodFirstPartyTypeKind.ZodObject\n });\n return merged;\n }\n // merge<\n // Incoming extends AnyZodObject,\n // Augmentation extends Incoming[\"shape\"],\n // NewOutput extends {\n // [k in keyof Augmentation | keyof Output]: k extends keyof Augmentation\n // ? Augmentation[k][\"_output\"]\n // : k extends keyof Output\n // ? Output[k]\n // : never;\n // },\n // NewInput extends {\n // [k in keyof Augmentation | keyof Input]: k extends keyof Augmentation\n // ? Augmentation[k][\"_input\"]\n // : k extends keyof Input\n // ? Input[k]\n // : never;\n // }\n // >(\n // merging: Incoming\n // ): ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"],\n // NewOutput,\n // NewInput\n // > {\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n setKey(key, schema) {\n return this.augment({ [key]: schema });\n }\n // merge<Incoming extends AnyZodObject>(\n // merging: Incoming\n // ): //ZodObject<T & Incoming[\"_shape\"], UnknownKeys, Catchall> = (merging) => {\n // ZodObject<\n // extendShape<T, ReturnType<Incoming[\"_def\"][\"shape\"]>>,\n // Incoming[\"_def\"][\"unknownKeys\"],\n // Incoming[\"_def\"][\"catchall\"]\n // > {\n // // const mergedShape = objectUtil.mergeShapes(\n // // this._def.shape(),\n // // merging._def.shape()\n // // );\n // const merged: any = new ZodObject({\n // unknownKeys: merging._def.unknownKeys,\n // catchall: merging._def.catchall,\n // shape: () =>\n // objectUtil.mergeShapes(this._def.shape(), merging._def.shape()),\n // typeName: ZodFirstPartyTypeKind.ZodObject,\n // }) as any;\n // return merged;\n // }\n catchall(index) {\n return new _ZodObject({\n ...this._def,\n catchall: index\n });\n }\n pick(mask) {\n const shape = {};\n util.objectKeys(mask).forEach((key) => {\n if (mask[key] && this.shape[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new _ZodObject({\n ...this._def,\n shape: () => shape\n });\n }\n omit(mask) {\n const shape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (!mask[key]) {\n shape[key] = this.shape[key];\n }\n });\n return new _ZodObject({\n ...this._def,\n shape: () => shape\n });\n }\n /**\n * @deprecated\n */\n deepPartial() {\n return deepPartialify(this);\n }\n partial(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n const fieldSchema = this.shape[key];\n if (mask && !mask[key]) {\n newShape[key] = fieldSchema;\n } else {\n newShape[key] = fieldSchema.optional();\n }\n });\n return new _ZodObject({\n ...this._def,\n shape: () => newShape\n });\n }\n required(mask) {\n const newShape = {};\n util.objectKeys(this.shape).forEach((key) => {\n if (mask && !mask[key]) {\n newShape[key] = this.shape[key];\n } else {\n const fieldSchema = this.shape[key];\n let newField = fieldSchema;\n while (newField instanceof ZodOptional) {\n newField = newField._def.innerType;\n }\n newShape[key] = newField;\n }\n });\n return new _ZodObject({\n ...this._def,\n shape: () => newShape\n });\n }\n keyof() {\n return createZodEnum(util.objectKeys(this.shape));\n }\n};\n__name(_ZodObject, \"ZodObject\");\nvar ZodObject = _ZodObject;\nZodObject.create = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nZodObject.strictCreate = (shape, params) => {\n return new ZodObject({\n shape: () => shape,\n unknownKeys: \"strict\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nZodObject.lazycreate = (shape, params) => {\n return new ZodObject({\n shape,\n unknownKeys: \"strip\",\n catchall: ZodNever.create(),\n typeName: ZodFirstPartyTypeKind.ZodObject,\n ...processCreateParams(params)\n });\n};\nvar _ZodUnion = class _ZodUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const options = this._def.options;\n function handleResults(results) {\n for (const result of results) {\n if (result.result.status === \"valid\") {\n return result.result;\n }\n }\n for (const result of results) {\n if (result.result.status === \"dirty\") {\n ctx.common.issues.push(...result.ctx.common.issues);\n return result.result;\n }\n }\n const unionErrors = results.map((result) => new ZodError(result.ctx.common.issues));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors\n });\n return INVALID;\n }\n __name(handleResults, \"handleResults\");\n if (ctx.common.async) {\n return Promise.all(options.map(async (option) => {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n },\n parent: null\n };\n return {\n result: await option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx\n }),\n ctx: childCtx\n };\n })).then(handleResults);\n } else {\n let dirty = void 0;\n const issues = [];\n for (const option of options) {\n const childCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n },\n parent: null\n };\n const result = option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: childCtx\n });\n if (result.status === \"valid\") {\n return result;\n } else if (result.status === \"dirty\" && !dirty) {\n dirty = { result, ctx: childCtx };\n }\n if (childCtx.common.issues.length) {\n issues.push(childCtx.common.issues);\n }\n }\n if (dirty) {\n ctx.common.issues.push(...dirty.ctx.common.issues);\n return dirty.result;\n }\n const unionErrors = issues.map((issues2) => new ZodError(issues2));\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union,\n unionErrors\n });\n return INVALID;\n }\n }\n get options() {\n return this._def.options;\n }\n};\n__name(_ZodUnion, \"ZodUnion\");\nvar ZodUnion = _ZodUnion;\nZodUnion.create = (types, params) => {\n return new ZodUnion({\n options: types,\n typeName: ZodFirstPartyTypeKind.ZodUnion,\n ...processCreateParams(params)\n });\n};\nvar getDiscriminator = /* @__PURE__ */ __name((type) => {\n if (type instanceof ZodLazy) {\n return getDiscriminator(type.schema);\n } else if (type instanceof ZodEffects) {\n return getDiscriminator(type.innerType());\n } else if (type instanceof ZodLiteral) {\n return [type.value];\n } else if (type instanceof ZodEnum) {\n return type.options;\n } else if (type instanceof ZodNativeEnum) {\n return Object.keys(type.enum);\n } else if (type instanceof ZodDefault) {\n return getDiscriminator(type._def.innerType);\n } else if (type instanceof ZodUndefined) {\n return [void 0];\n } else if (type instanceof ZodNull) {\n return [null];\n } else {\n return null;\n }\n}, \"getDiscriminator\");\nvar _ZodDiscriminatedUnion = class _ZodDiscriminatedUnion extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const discriminator = this.discriminator;\n const discriminatorValue = ctx.data[discriminator];\n const option = this.optionsMap.get(discriminatorValue);\n if (!option) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_union_discriminator,\n options: Array.from(this.optionsMap.keys()),\n path: [discriminator]\n });\n return INVALID;\n }\n if (ctx.common.async) {\n return option._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n } else {\n return option._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n get discriminator() {\n return this._def.discriminator;\n }\n get options() {\n return this._def.options;\n }\n get optionsMap() {\n return this._def.optionsMap;\n }\n /**\n * The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor.\n * However, it only allows a union of objects, all of which need to share a discriminator property. This property must\n * have a different value for each object in the union.\n * @param discriminator the name of the discriminator property\n * @param types an array of object schemas\n * @param params\n */\n static create(discriminator, options, params) {\n const optionsMap = /* @__PURE__ */ new Map();\n for (const type of options) {\n const discriminatorValues = getDiscriminator(type.shape[discriminator]);\n if (!discriminatorValues) {\n throw new Error(`A discriminator value for key \\`${discriminator}\\` could not be extracted from all schema options`);\n }\n for (const value of discriminatorValues) {\n if (optionsMap.has(value)) {\n throw new Error(`Discriminator property ${String(discriminator)} has duplicate value ${String(value)}`);\n }\n optionsMap.set(value, type);\n }\n }\n return new _ZodDiscriminatedUnion({\n typeName: ZodFirstPartyTypeKind.ZodDiscriminatedUnion,\n discriminator,\n options,\n optionsMap,\n ...processCreateParams(params)\n });\n }\n};\n__name(_ZodDiscriminatedUnion, \"ZodDiscriminatedUnion\");\nvar ZodDiscriminatedUnion = _ZodDiscriminatedUnion;\nfunction mergeValues(a, b) {\n const aType = getParsedType(a);\n const bType = getParsedType(b);\n if (a === b) {\n return { valid: true, data: a };\n } else if (aType === ZodParsedType.object && bType === ZodParsedType.object) {\n const bKeys = util.objectKeys(b);\n const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);\n const newObj = { ...a, ...b };\n for (const key of sharedKeys) {\n const sharedValue = mergeValues(a[key], b[key]);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newObj[key] = sharedValue.data;\n }\n return { valid: true, data: newObj };\n } else if (aType === ZodParsedType.array && bType === ZodParsedType.array) {\n if (a.length !== b.length) {\n return { valid: false };\n }\n const newArray = [];\n for (let index = 0; index < a.length; index++) {\n const itemA = a[index];\n const itemB = b[index];\n const sharedValue = mergeValues(itemA, itemB);\n if (!sharedValue.valid) {\n return { valid: false };\n }\n newArray.push(sharedValue.data);\n }\n return { valid: true, data: newArray };\n } else if (aType === ZodParsedType.date && bType === ZodParsedType.date && +a === +b) {\n return { valid: true, data: a };\n } else {\n return { valid: false };\n }\n}\n__name(mergeValues, \"mergeValues\");\nvar _ZodIntersection = class _ZodIntersection extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const handleParsed = /* @__PURE__ */ __name((parsedLeft, parsedRight) => {\n if (isAborted(parsedLeft) || isAborted(parsedRight)) {\n return INVALID;\n }\n const merged = mergeValues(parsedLeft.value, parsedRight.value);\n if (!merged.valid) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_intersection_types\n });\n return INVALID;\n }\n if (isDirty(parsedLeft) || isDirty(parsedRight)) {\n status.dirty();\n }\n return { status: status.value, value: merged.data };\n }, \"handleParsed\");\n if (ctx.common.async) {\n return Promise.all([\n this._def.left._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }),\n this._def.right._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n })\n ]).then(([left, right]) => handleParsed(left, right));\n } else {\n return handleParsed(this._def.left._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }), this._def.right._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n }));\n }\n }\n};\n__name(_ZodIntersection, \"ZodIntersection\");\nvar ZodIntersection = _ZodIntersection;\nZodIntersection.create = (left, right, params) => {\n return new ZodIntersection({\n left,\n right,\n typeName: ZodFirstPartyTypeKind.ZodIntersection,\n ...processCreateParams(params)\n });\n};\nvar _ZodTuple = class _ZodTuple extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.array) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.array,\n received: ctx.parsedType\n });\n return INVALID;\n }\n if (ctx.data.length < this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\"\n });\n return INVALID;\n }\n const rest = this._def.rest;\n if (!rest && ctx.data.length > this._def.items.length) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: this._def.items.length,\n inclusive: true,\n exact: false,\n type: \"array\"\n });\n status.dirty();\n }\n const items = [...ctx.data].map((item, itemIndex) => {\n const schema = this._def.items[itemIndex] || this._def.rest;\n if (!schema)\n return null;\n return schema._parse(new ParseInputLazyPath(ctx, item, ctx.path, itemIndex));\n }).filter((x) => !!x);\n if (ctx.common.async) {\n return Promise.all(items).then((results) => {\n return ParseStatus.mergeArray(status, results);\n });\n } else {\n return ParseStatus.mergeArray(status, items);\n }\n }\n get items() {\n return this._def.items;\n }\n rest(rest) {\n return new _ZodTuple({\n ...this._def,\n rest\n });\n }\n};\n__name(_ZodTuple, \"ZodTuple\");\nvar ZodTuple = _ZodTuple;\nZodTuple.create = (schemas, params) => {\n if (!Array.isArray(schemas)) {\n throw new Error(\"You must pass an array of schemas to z.tuple([ ... ])\");\n }\n return new ZodTuple({\n items: schemas,\n typeName: ZodFirstPartyTypeKind.ZodTuple,\n rest: null,\n ...processCreateParams(params)\n });\n};\nvar _ZodRecord = class _ZodRecord extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.object) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.object,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const pairs = [];\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n for (const key in ctx.data) {\n pairs.push({\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, key)),\n value: valueType._parse(new ParseInputLazyPath(ctx, ctx.data[key], ctx.path, key))\n });\n }\n if (ctx.common.async) {\n return ParseStatus.mergeObjectAsync(status, pairs);\n } else {\n return ParseStatus.mergeObjectSync(status, pairs);\n }\n }\n get element() {\n return this._def.valueType;\n }\n static create(first, second, third) {\n if (second instanceof ZodType) {\n return new _ZodRecord({\n keyType: first,\n valueType: second,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(third)\n });\n }\n return new _ZodRecord({\n keyType: ZodString.create(),\n valueType: first,\n typeName: ZodFirstPartyTypeKind.ZodRecord,\n ...processCreateParams(second)\n });\n }\n};\n__name(_ZodRecord, \"ZodRecord\");\nvar ZodRecord = _ZodRecord;\nvar _ZodMap = class _ZodMap extends ZodType {\n get keySchema() {\n return this._def.keyType;\n }\n get valueSchema() {\n return this._def.valueType;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.map) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.map,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const keyType = this._def.keyType;\n const valueType = this._def.valueType;\n const pairs = [...ctx.data.entries()].map(([key, value], index) => {\n return {\n key: keyType._parse(new ParseInputLazyPath(ctx, key, ctx.path, [index, \"key\"])),\n value: valueType._parse(new ParseInputLazyPath(ctx, value, ctx.path, [index, \"value\"]))\n };\n });\n if (ctx.common.async) {\n const finalMap = /* @__PURE__ */ new Map();\n return Promise.resolve().then(async () => {\n for (const pair of pairs) {\n const key = await pair.key;\n const value = await pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n });\n } else {\n const finalMap = /* @__PURE__ */ new Map();\n for (const pair of pairs) {\n const key = pair.key;\n const value = pair.value;\n if (key.status === \"aborted\" || value.status === \"aborted\") {\n return INVALID;\n }\n if (key.status === \"dirty\" || value.status === \"dirty\") {\n status.dirty();\n }\n finalMap.set(key.value, value.value);\n }\n return { status: status.value, value: finalMap };\n }\n }\n};\n__name(_ZodMap, \"ZodMap\");\nvar ZodMap = _ZodMap;\nZodMap.create = (keyType, valueType, params) => {\n return new ZodMap({\n valueType,\n keyType,\n typeName: ZodFirstPartyTypeKind.ZodMap,\n ...processCreateParams(params)\n });\n};\nvar _ZodSet = class _ZodSet extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.set) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.set,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const def = this._def;\n if (def.minSize !== null) {\n if (ctx.data.size < def.minSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_small,\n minimum: def.minSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.minSize.message\n });\n status.dirty();\n }\n }\n if (def.maxSize !== null) {\n if (ctx.data.size > def.maxSize.value) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.too_big,\n maximum: def.maxSize.value,\n type: \"set\",\n inclusive: true,\n exact: false,\n message: def.maxSize.message\n });\n status.dirty();\n }\n }\n const valueType = this._def.valueType;\n function finalizeSet(elements2) {\n const parsedSet = /* @__PURE__ */ new Set();\n for (const element of elements2) {\n if (element.status === \"aborted\")\n return INVALID;\n if (element.status === \"dirty\")\n status.dirty();\n parsedSet.add(element.value);\n }\n return { status: status.value, value: parsedSet };\n }\n __name(finalizeSet, \"finalizeSet\");\n const elements = [...ctx.data.values()].map((item, i) => valueType._parse(new ParseInputLazyPath(ctx, item, ctx.path, i)));\n if (ctx.common.async) {\n return Promise.all(elements).then((elements2) => finalizeSet(elements2));\n } else {\n return finalizeSet(elements);\n }\n }\n min(minSize, message) {\n return new _ZodSet({\n ...this._def,\n minSize: { value: minSize, message: errorUtil.toString(message) }\n });\n }\n max(maxSize, message) {\n return new _ZodSet({\n ...this._def,\n maxSize: { value: maxSize, message: errorUtil.toString(message) }\n });\n }\n size(size, message) {\n return this.min(size, message).max(size, message);\n }\n nonempty(message) {\n return this.min(1, message);\n }\n};\n__name(_ZodSet, \"ZodSet\");\nvar ZodSet = _ZodSet;\nZodSet.create = (valueType, params) => {\n return new ZodSet({\n valueType,\n minSize: null,\n maxSize: null,\n typeName: ZodFirstPartyTypeKind.ZodSet,\n ...processCreateParams(params)\n });\n};\nvar _ZodFunction = class _ZodFunction extends ZodType {\n constructor() {\n super(...arguments);\n this.validate = this.implement;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.function) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.function,\n received: ctx.parsedType\n });\n return INVALID;\n }\n function makeArgsIssue(args, error) {\n return makeIssue({\n data: args,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_arguments,\n argumentsError: error\n }\n });\n }\n __name(makeArgsIssue, \"makeArgsIssue\");\n function makeReturnsIssue(returns, error) {\n return makeIssue({\n data: returns,\n path: ctx.path,\n errorMaps: [\n ctx.common.contextualErrorMap,\n ctx.schemaErrorMap,\n getErrorMap(),\n errorMap\n ].filter((x) => !!x),\n issueData: {\n code: ZodIssueCode.invalid_return_type,\n returnTypeError: error\n }\n });\n }\n __name(makeReturnsIssue, \"makeReturnsIssue\");\n const params = { errorMap: ctx.common.contextualErrorMap };\n const fn = ctx.data;\n if (this._def.returns instanceof ZodPromise) {\n const me = this;\n return OK(async function(...args) {\n const error = new ZodError([]);\n const parsedArgs = await me._def.args.parseAsync(args, params).catch((e) => {\n error.addIssue(makeArgsIssue(args, e));\n throw error;\n });\n const result = await Reflect.apply(fn, this, parsedArgs);\n const parsedReturns = await me._def.returns._def.type.parseAsync(result, params).catch((e) => {\n error.addIssue(makeReturnsIssue(result, e));\n throw error;\n });\n return parsedReturns;\n });\n } else {\n const me = this;\n return OK(function(...args) {\n const parsedArgs = me._def.args.safeParse(args, params);\n if (!parsedArgs.success) {\n throw new ZodError([makeArgsIssue(args, parsedArgs.error)]);\n }\n const result = Reflect.apply(fn, this, parsedArgs.data);\n const parsedReturns = me._def.returns.safeParse(result, params);\n if (!parsedReturns.success) {\n throw new ZodError([makeReturnsIssue(result, parsedReturns.error)]);\n }\n return parsedReturns.data;\n });\n }\n }\n parameters() {\n return this._def.args;\n }\n returnType() {\n return this._def.returns;\n }\n args(...items) {\n return new _ZodFunction({\n ...this._def,\n args: ZodTuple.create(items).rest(ZodUnknown.create())\n });\n }\n returns(returnType) {\n return new _ZodFunction({\n ...this._def,\n returns: returnType\n });\n }\n implement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n strictImplement(func) {\n const validatedFunc = this.parse(func);\n return validatedFunc;\n }\n static create(args, returns, params) {\n return new _ZodFunction({\n args: args ? args : ZodTuple.create([]).rest(ZodUnknown.create()),\n returns: returns || ZodUnknown.create(),\n typeName: ZodFirstPartyTypeKind.ZodFunction,\n ...processCreateParams(params)\n });\n }\n};\n__name(_ZodFunction, \"ZodFunction\");\nvar ZodFunction = _ZodFunction;\nvar _ZodLazy = class _ZodLazy extends ZodType {\n get schema() {\n return this._def.getter();\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const lazySchema = this._def.getter();\n return lazySchema._parse({ data: ctx.data, path: ctx.path, parent: ctx });\n }\n};\n__name(_ZodLazy, \"ZodLazy\");\nvar ZodLazy = _ZodLazy;\nZodLazy.create = (getter, params) => {\n return new ZodLazy({\n getter,\n typeName: ZodFirstPartyTypeKind.ZodLazy,\n ...processCreateParams(params)\n });\n};\nvar _ZodLiteral = class _ZodLiteral extends ZodType {\n _parse(input) {\n if (input.data !== this._def.value) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_literal,\n expected: this._def.value\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n get value() {\n return this._def.value;\n }\n};\n__name(_ZodLiteral, \"ZodLiteral\");\nvar ZodLiteral = _ZodLiteral;\nZodLiteral.create = (value, params) => {\n return new ZodLiteral({\n value,\n typeName: ZodFirstPartyTypeKind.ZodLiteral,\n ...processCreateParams(params)\n });\n};\nfunction createZodEnum(values, params) {\n return new ZodEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodEnum,\n ...processCreateParams(params)\n });\n}\n__name(createZodEnum, \"createZodEnum\");\nvar _ZodEnum = class _ZodEnum extends ZodType {\n _parse(input) {\n if (typeof input.data !== \"string\") {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type\n });\n return INVALID;\n }\n if (this._def.values.indexOf(input.data) === -1) {\n const ctx = this._getOrReturnCtx(input);\n const expectedValues = this._def.values;\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get options() {\n return this._def.values;\n }\n get enum() {\n const enumValues2 = {};\n for (const val of this._def.values) {\n enumValues2[val] = val;\n }\n return enumValues2;\n }\n get Values() {\n const enumValues2 = {};\n for (const val of this._def.values) {\n enumValues2[val] = val;\n }\n return enumValues2;\n }\n get Enum() {\n const enumValues2 = {};\n for (const val of this._def.values) {\n enumValues2[val] = val;\n }\n return enumValues2;\n }\n extract(values) {\n return _ZodEnum.create(values);\n }\n exclude(values) {\n return _ZodEnum.create(this.options.filter((opt) => !values.includes(opt)));\n }\n};\n__name(_ZodEnum, \"ZodEnum\");\nvar ZodEnum = _ZodEnum;\nZodEnum.create = createZodEnum;\nvar _ZodNativeEnum = class _ZodNativeEnum extends ZodType {\n _parse(input) {\n const nativeEnumValues = util.getValidEnumValues(this._def.values);\n const ctx = this._getOrReturnCtx(input);\n if (ctx.parsedType !== ZodParsedType.string && ctx.parsedType !== ZodParsedType.number) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n expected: util.joinValues(expectedValues),\n received: ctx.parsedType,\n code: ZodIssueCode.invalid_type\n });\n return INVALID;\n }\n if (nativeEnumValues.indexOf(input.data) === -1) {\n const expectedValues = util.objectValues(nativeEnumValues);\n addIssueToContext(ctx, {\n received: ctx.data,\n code: ZodIssueCode.invalid_enum_value,\n options: expectedValues\n });\n return INVALID;\n }\n return OK(input.data);\n }\n get enum() {\n return this._def.values;\n }\n};\n__name(_ZodNativeEnum, \"ZodNativeEnum\");\nvar ZodNativeEnum = _ZodNativeEnum;\nZodNativeEnum.create = (values, params) => {\n return new ZodNativeEnum({\n values,\n typeName: ZodFirstPartyTypeKind.ZodNativeEnum,\n ...processCreateParams(params)\n });\n};\nvar _ZodPromise = class _ZodPromise extends ZodType {\n unwrap() {\n return this._def.type;\n }\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n if (ctx.parsedType !== ZodParsedType.promise && ctx.common.async === false) {\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.promise,\n received: ctx.parsedType\n });\n return INVALID;\n }\n const promisified = ctx.parsedType === ZodParsedType.promise ? ctx.data : Promise.resolve(ctx.data);\n return OK(promisified.then((data) => {\n return this._def.type.parseAsync(data, {\n path: ctx.path,\n errorMap: ctx.common.contextualErrorMap\n });\n }));\n }\n};\n__name(_ZodPromise, \"ZodPromise\");\nvar ZodPromise = _ZodPromise;\nZodPromise.create = (schema, params) => {\n return new ZodPromise({\n type: schema,\n typeName: ZodFirstPartyTypeKind.ZodPromise,\n ...processCreateParams(params)\n });\n};\nvar _ZodEffects = class _ZodEffects extends ZodType {\n innerType() {\n return this._def.schema;\n }\n sourceType() {\n return this._def.schema._def.typeName === ZodFirstPartyTypeKind.ZodEffects ? this._def.schema.sourceType() : this._def.schema;\n }\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n const effect = this._def.effect || null;\n const checkCtx = {\n addIssue: (arg) => {\n addIssueToContext(ctx, arg);\n if (arg.fatal) {\n status.abort();\n } else {\n status.dirty();\n }\n },\n get path() {\n return ctx.path;\n }\n };\n checkCtx.addIssue = checkCtx.addIssue.bind(checkCtx);\n if (effect.type === \"preprocess\") {\n const processed = effect.transform(ctx.data, checkCtx);\n if (ctx.common.issues.length) {\n return {\n status: \"dirty\",\n value: ctx.data\n };\n }\n if (ctx.common.async) {\n return Promise.resolve(processed).then((processed2) => {\n return this._def.schema._parseAsync({\n data: processed2,\n path: ctx.path,\n parent: ctx\n });\n });\n } else {\n return this._def.schema._parseSync({\n data: processed,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n if (effect.type === \"refinement\") {\n const executeRefinement = /* @__PURE__ */ __name((acc) => {\n const result = effect.refinement(acc, checkCtx);\n if (ctx.common.async) {\n return Promise.resolve(result);\n }\n if (result instanceof Promise) {\n throw new Error(\"Async refinement encountered during synchronous parse operation. Use .parseAsync instead.\");\n }\n return acc;\n }, \"executeRefinement\");\n if (ctx.common.async === false) {\n const inner = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n executeRefinement(inner.value);\n return { status: status.value, value: inner.value };\n } else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((inner) => {\n if (inner.status === \"aborted\")\n return INVALID;\n if (inner.status === \"dirty\")\n status.dirty();\n return executeRefinement(inner.value).then(() => {\n return { status: status.value, value: inner.value };\n });\n });\n }\n }\n if (effect.type === \"transform\") {\n if (ctx.common.async === false) {\n const base = this._def.schema._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (!isValid(base))\n return base;\n const result = effect.transform(base.value, checkCtx);\n if (result instanceof Promise) {\n throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`);\n }\n return { status: status.value, value: result };\n } else {\n return this._def.schema._parseAsync({ data: ctx.data, path: ctx.path, parent: ctx }).then((base) => {\n if (!isValid(base))\n return base;\n return Promise.resolve(effect.transform(base.value, checkCtx)).then((result) => ({ status: status.value, value: result }));\n });\n }\n }\n util.assertNever(effect);\n }\n};\n__name(_ZodEffects, \"ZodEffects\");\nvar ZodEffects = _ZodEffects;\nZodEffects.create = (schema, effect, params) => {\n return new ZodEffects({\n schema,\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n effect,\n ...processCreateParams(params)\n });\n};\nZodEffects.createWithPreprocess = (preprocess, schema, params) => {\n return new ZodEffects({\n schema,\n effect: { type: \"preprocess\", transform: preprocess },\n typeName: ZodFirstPartyTypeKind.ZodEffects,\n ...processCreateParams(params)\n });\n};\nvar _ZodOptional = class _ZodOptional extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.undefined) {\n return OK(void 0);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n};\n__name(_ZodOptional, \"ZodOptional\");\nvar ZodOptional = _ZodOptional;\nZodOptional.create = (type, params) => {\n return new ZodOptional({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodOptional,\n ...processCreateParams(params)\n });\n};\nvar _ZodNullable = class _ZodNullable extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType === ZodParsedType.null) {\n return OK(null);\n }\n return this._def.innerType._parse(input);\n }\n unwrap() {\n return this._def.innerType;\n }\n};\n__name(_ZodNullable, \"ZodNullable\");\nvar ZodNullable = _ZodNullable;\nZodNullable.create = (type, params) => {\n return new ZodNullable({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodNullable,\n ...processCreateParams(params)\n });\n};\nvar _ZodDefault = class _ZodDefault extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n let data = ctx.data;\n if (ctx.parsedType === ZodParsedType.undefined) {\n data = this._def.defaultValue();\n }\n return this._def.innerType._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n removeDefault() {\n return this._def.innerType;\n }\n};\n__name(_ZodDefault, \"ZodDefault\");\nvar ZodDefault = _ZodDefault;\nZodDefault.create = (type, params) => {\n return new ZodDefault({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodDefault,\n defaultValue: typeof params.default === \"function\" ? params.default : () => params.default,\n ...processCreateParams(params)\n });\n};\nvar _ZodCatch = class _ZodCatch extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const newCtx = {\n ...ctx,\n common: {\n ...ctx.common,\n issues: []\n }\n };\n const result = this._def.innerType._parse({\n data: newCtx.data,\n path: newCtx.path,\n parent: {\n ...newCtx\n }\n });\n if (isAsync(result)) {\n return result.then((result2) => {\n return {\n status: \"valid\",\n value: result2.status === \"valid\" ? result2.value : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data\n })\n };\n });\n } else {\n return {\n status: \"valid\",\n value: result.status === \"valid\" ? result.value : this._def.catchValue({\n get error() {\n return new ZodError(newCtx.common.issues);\n },\n input: newCtx.data\n })\n };\n }\n }\n removeCatch() {\n return this._def.innerType;\n }\n};\n__name(_ZodCatch, \"ZodCatch\");\nvar ZodCatch = _ZodCatch;\nZodCatch.create = (type, params) => {\n return new ZodCatch({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodCatch,\n catchValue: typeof params.catch === \"function\" ? params.catch : () => params.catch,\n ...processCreateParams(params)\n });\n};\nvar _ZodNaN = class _ZodNaN extends ZodType {\n _parse(input) {\n const parsedType = this._getType(input);\n if (parsedType !== ZodParsedType.nan) {\n const ctx = this._getOrReturnCtx(input);\n addIssueToContext(ctx, {\n code: ZodIssueCode.invalid_type,\n expected: ZodParsedType.nan,\n received: ctx.parsedType\n });\n return INVALID;\n }\n return { status: \"valid\", value: input.data };\n }\n};\n__name(_ZodNaN, \"ZodNaN\");\nvar ZodNaN = _ZodNaN;\nZodNaN.create = (params) => {\n return new ZodNaN({\n typeName: ZodFirstPartyTypeKind.ZodNaN,\n ...processCreateParams(params)\n });\n};\nvar BRAND = Symbol(\"zod_brand\");\nvar _ZodBranded = class _ZodBranded extends ZodType {\n _parse(input) {\n const { ctx } = this._processInputParams(input);\n const data = ctx.data;\n return this._def.type._parse({\n data,\n path: ctx.path,\n parent: ctx\n });\n }\n unwrap() {\n return this._def.type;\n }\n};\n__name(_ZodBranded, \"ZodBranded\");\nvar ZodBranded = _ZodBranded;\nvar _ZodPipeline = class _ZodPipeline extends ZodType {\n _parse(input) {\n const { status, ctx } = this._processInputParams(input);\n if (ctx.common.async) {\n const handleAsync = /* @__PURE__ */ __name(async () => {\n const inResult = await this._def.in._parseAsync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return DIRTY(inResult.value);\n } else {\n return this._def.out._parseAsync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx\n });\n }\n }, \"handleAsync\");\n return handleAsync();\n } else {\n const inResult = this._def.in._parseSync({\n data: ctx.data,\n path: ctx.path,\n parent: ctx\n });\n if (inResult.status === \"aborted\")\n return INVALID;\n if (inResult.status === \"dirty\") {\n status.dirty();\n return {\n status: \"dirty\",\n value: inResult.value\n };\n } else {\n return this._def.out._parseSync({\n data: inResult.value,\n path: ctx.path,\n parent: ctx\n });\n }\n }\n }\n static create(a, b) {\n return new _ZodPipeline({\n in: a,\n out: b,\n typeName: ZodFirstPartyTypeKind.ZodPipeline\n });\n }\n};\n__name(_ZodPipeline, \"ZodPipeline\");\nvar ZodPipeline = _ZodPipeline;\nvar _ZodReadonly = class _ZodReadonly extends ZodType {\n _parse(input) {\n const result = this._def.innerType._parse(input);\n if (isValid(result)) {\n result.value = Object.freeze(result.value);\n }\n return result;\n }\n};\n__name(_ZodReadonly, \"ZodReadonly\");\nvar ZodReadonly = _ZodReadonly;\nZodReadonly.create = (type, params) => {\n return new ZodReadonly({\n innerType: type,\n typeName: ZodFirstPartyTypeKind.ZodReadonly,\n ...processCreateParams(params)\n });\n};\nvar custom = /* @__PURE__ */ __name((check, params = {}, fatal) => {\n if (check)\n return ZodAny.create().superRefine((data, ctx) => {\n var _a, _b;\n if (!check(data)) {\n const p = typeof params === \"function\" ? params(data) : typeof params === \"string\" ? { message: params } : params;\n const _fatal = (_b = (_a = p.fatal) !== null && _a !== void 0 ? _a : fatal) !== null && _b !== void 0 ? _b : true;\n const p2 = typeof p === \"string\" ? { message: p } : p;\n ctx.addIssue({ code: \"custom\", ...p2, fatal: _fatal });\n }\n });\n return ZodAny.create();\n}, \"custom\");\nvar late = {\n object: ZodObject.lazycreate\n};\nvar ZodFirstPartyTypeKind;\n(function(ZodFirstPartyTypeKind2) {\n ZodFirstPartyTypeKind2[\"ZodString\"] = \"ZodString\";\n ZodFirstPartyTypeKind2[\"ZodNumber\"] = \"ZodNumber\";\n ZodFirstPartyTypeKind2[\"ZodNaN\"] = \"ZodNaN\";\n ZodFirstPartyTypeKind2[\"ZodBigInt\"] = \"ZodBigInt\";\n ZodFirstPartyTypeKind2[\"ZodBoolean\"] = \"ZodBoolean\";\n ZodFirstPartyTypeKind2[\"ZodDate\"] = \"ZodDate\";\n ZodFirstPartyTypeKind2[\"ZodSymbol\"] = \"ZodSymbol\";\n ZodFirstPartyTypeKind2[\"ZodUndefined\"] = \"ZodUndefined\";\n ZodFirstPartyTypeKind2[\"ZodNull\"] = \"ZodNull\";\n ZodFirstPartyTypeKind2[\"ZodAny\"] = \"ZodAny\";\n ZodFirstPartyTypeKind2[\"ZodUnknown\"] = \"ZodUnknown\";\n ZodFirstPartyTypeKind2[\"ZodNever\"] = \"ZodNever\";\n ZodFirstPartyTypeKind2[\"ZodVoid\"] = \"ZodVoid\";\n ZodFirstPartyTypeKind2[\"ZodArray\"] = \"ZodArray\";\n ZodFirstPartyTypeKind2[\"ZodObject\"] = \"ZodObject\";\n ZodFirstPartyTypeKind2[\"ZodUnion\"] = \"ZodUnion\";\n ZodFirstPartyTypeKind2[\"ZodDiscriminatedUnion\"] = \"ZodDiscriminatedUnion\";\n ZodFirstPartyTypeKind2[\"ZodIntersection\"] = \"ZodIntersection\";\n ZodFirstPartyTypeKind2[\"ZodTuple\"] = \"ZodTuple\";\n ZodFirstPartyTypeKind2[\"ZodRecord\"] = \"ZodRecord\";\n ZodFirstPartyTypeKind2[\"ZodMap\"] = \"ZodMap\";\n ZodFirstPartyTypeKind2[\"ZodSet\"] = \"ZodSet\";\n ZodFirstPartyTypeKind2[\"ZodFunction\"] = \"ZodFunction\";\n ZodFirstPartyTypeKind2[\"ZodLazy\"] = \"ZodLazy\";\n ZodFirstPartyTypeKind2[\"ZodLiteral\"] = \"ZodLiteral\";\n ZodFirstPartyTypeKind2[\"ZodEnum\"] = \"ZodEnum\";\n ZodFirstPartyTypeKind2[\"ZodEffects\"] = \"ZodEffects\";\n ZodFirstPartyTypeKind2[\"ZodNativeEnum\"] = \"ZodNativeEnum\";\n ZodFirstPartyTypeKind2[\"ZodOptional\"] = \"ZodOptional\";\n ZodFirstPartyTypeKind2[\"ZodNullable\"] = \"ZodNullable\";\n ZodFirstPartyTypeKind2[\"ZodDefault\"] = \"ZodDefault\";\n ZodFirstPartyTypeKind2[\"ZodCatch\"] = \"ZodCatch\";\n ZodFirstPartyTypeKind2[\"ZodPromise\"] = \"ZodPromise\";\n ZodFirstPartyTypeKind2[\"ZodBranded\"] = \"ZodBranded\";\n ZodFirstPartyTypeKind2[\"ZodPipeline\"] = \"ZodPipeline\";\n ZodFirstPartyTypeKind2[\"ZodReadonly\"] = \"ZodReadonly\";\n})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));\nvar instanceOfType = /* @__PURE__ */ __name((cls, params = {\n message: `Input not instance of ${cls.name}`\n}) => custom((data) => data instanceof cls, params), \"instanceOfType\");\nvar stringType = ZodString.create;\nvar numberType = ZodNumber.create;\nvar nanType = ZodNaN.create;\nvar bigIntType = ZodBigInt.create;\nvar booleanType = ZodBoolean.create;\nvar dateType = ZodDate.create;\nvar symbolType = ZodSymbol.create;\nvar undefinedType = ZodUndefined.create;\nvar nullType = ZodNull.create;\nvar anyType = ZodAny.create;\nvar unknownType = ZodUnknown.create;\nvar neverType = ZodNever.create;\nvar voidType = ZodVoid.create;\nvar arrayType = ZodArray.create;\nvar objectType = ZodObject.create;\nvar strictObjectType = ZodObject.strictCreate;\nvar unionType = ZodUnion.create;\nvar discriminatedUnionType = ZodDiscriminatedUnion.create;\nvar intersectionType = ZodIntersection.create;\nvar tupleType = ZodTuple.create;\nvar recordType = ZodRecord.create;\nvar mapType = ZodMap.create;\nvar setType = ZodSet.create;\nvar functionType = ZodFunction.create;\nvar lazyType = ZodLazy.create;\nvar literalType = ZodLiteral.create;\nvar enumType = ZodEnum.create;\nvar nativeEnumType = ZodNativeEnum.create;\nvar promiseType = ZodPromise.create;\nvar effectsType = ZodEffects.create;\nvar optionalType = ZodOptional.create;\nvar nullableType = ZodNullable.create;\nvar preprocessType = ZodEffects.createWithPreprocess;\nvar pipelineType = ZodPipeline.create;\nvar ostring = /* @__PURE__ */ __name(() => stringType().optional(), \"ostring\");\nvar onumber = /* @__PURE__ */ __name(() => numberType().optional(), \"onumber\");\nvar oboolean = /* @__PURE__ */ __name(() => booleanType().optional(), \"oboolean\");\nvar coerce = {\n string: (arg) => ZodString.create({ ...arg, coerce: true }),\n number: (arg) => ZodNumber.create({ ...arg, coerce: true }),\n boolean: (arg) => ZodBoolean.create({\n ...arg,\n coerce: true\n }),\n bigint: (arg) => ZodBigInt.create({ ...arg, coerce: true }),\n date: (arg) => ZodDate.create({ ...arg, coerce: true })\n};\nvar NEVER = INVALID;\nvar z = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n defaultErrorMap: errorMap,\n setErrorMap,\n getErrorMap,\n makeIssue,\n EMPTY_PATH,\n addIssueToContext,\n ParseStatus,\n INVALID,\n DIRTY,\n OK,\n isAborted,\n isDirty,\n isValid,\n isAsync,\n get util() {\n return util;\n },\n get objectUtil() {\n return objectUtil;\n },\n ZodParsedType,\n getParsedType,\n ZodType,\n ZodString,\n ZodNumber,\n ZodBigInt,\n ZodBoolean,\n ZodDate,\n ZodSymbol,\n ZodUndefined,\n ZodNull,\n ZodAny,\n ZodUnknown,\n ZodNever,\n ZodVoid,\n ZodArray,\n ZodObject,\n ZodUnion,\n ZodDiscriminatedUnion,\n ZodIntersection,\n ZodTuple,\n ZodRecord,\n ZodMap,\n ZodSet,\n ZodFunction,\n ZodLazy,\n ZodLiteral,\n ZodEnum,\n ZodNativeEnum,\n ZodPromise,\n ZodEffects,\n ZodTransformer: ZodEffects,\n ZodOptional,\n ZodNullable,\n ZodDefault,\n ZodCatch,\n ZodNaN,\n BRAND,\n ZodBranded,\n ZodPipeline,\n ZodReadonly,\n custom,\n Schema: ZodType,\n ZodSchema: ZodType,\n late,\n get ZodFirstPartyTypeKind() {\n return ZodFirstPartyTypeKind;\n },\n coerce,\n any: anyType,\n array: arrayType,\n bigint: bigIntType,\n boolean: booleanType,\n date: dateType,\n discriminatedUnion: discriminatedUnionType,\n effect: effectsType,\n \"enum\": enumType,\n \"function\": functionType,\n \"instanceof\": instanceOfType,\n intersection: intersectionType,\n lazy: lazyType,\n literal: literalType,\n map: mapType,\n nan: nanType,\n nativeEnum: nativeEnumType,\n never: neverType,\n \"null\": nullType,\n nullable: nullableType,\n number: numberType,\n object: objectType,\n oboolean,\n onumber,\n optional: optionalType,\n ostring,\n pipeline: pipelineType,\n preprocess: preprocessType,\n promise: promiseType,\n record: recordType,\n set: setType,\n strictObject: strictObjectType,\n string: stringType,\n symbol: symbolType,\n transformer: effectsType,\n tuple: tupleType,\n \"undefined\": undefinedType,\n union: unionType,\n unknown: unknownType,\n \"void\": voidType,\n NEVER,\n ZodIssueCode,\n quotelessJson,\n ZodError\n});\n\n// ../shared/src/guards.ts\nvar isString = /* @__PURE__ */ __name((value) => typeof value === \"string\", \"isString\");\nvar isNotNullish = /* @__PURE__ */ __name((value) => value !== null && value !== void 0, \"isNotNullish\");\nfunction assert(condition, message) {\n if (condition)\n return;\n const error = new Error(message);\n if (error.stack) {\n error.stack = error.stack.replace(/\\n.+/, \"\\n\");\n }\n throw error;\n}\n__name(assert, \"assert\");\n\n// ../shared/src/bitcoin.ts\nvar import_bech32_buffer = __toESM(require_lib());\nvar isValidSegwitAddress = /* @__PURE__ */ __name((address) => {\n const hrp = /^(bc|tb|bcrt)1/.exec(address)?.[1];\n if (!hrp)\n return false;\n return import_bech32_buffer.BitcoinAddress.decode(address).prefix === hrp;\n}, \"isValidSegwitAddress\");\n\n// ../shared/src/validation/addressValidation.ts\nvar validatePolkadotAddress = /* @__PURE__ */ __name((address) => {\n try {\n const bytes = decodeAddress(address);\n if (isHex(address)) {\n const pubkey = u8aToHex(bytes);\n if (pubkey.length !== 66)\n return false;\n }\n encodeAddress(bytes);\n return true;\n } catch {\n return false;\n }\n}, \"validatePolkadotAddress\");\nvar validateEvmAddress = /* @__PURE__ */ __name((address) => ethers.isAddress(address), \"validateEvmAddress\");\nvar assertArraylikeEqual = /* @__PURE__ */ __name((a, b) => {\n assert(a.length === b.length, \"arraylike lengths must be equal\");\n for (let i = 0; i < a.length; i += 1) {\n assert(a[i] === b[i], \"arraylike elements must be equal\");\n }\n}, \"assertArraylikeEqual\");\nvar validateP2PKHOrP2SHAddress = /* @__PURE__ */ __name((address, network) => {\n try {\n const decoded = base58Decode(address);\n assert(decoded.length === 25, \"decoded address must be 25 bytes long\");\n if (network === \"mainnet\") {\n assert(decoded[0] === 0 || decoded[0] === 5, \"decoded address must start with 0x00 or 0x05\");\n } else {\n assert(decoded[0] === 111 || decoded[0] === 196, \"decoded address must start with 0x6f or 0xc4\");\n }\n const checksum = decoded.slice(-4);\n const doubleHash = ethers.getBytes(ethers.sha256(ethers.sha256(decoded.slice(0, 21))));\n assertArraylikeEqual(checksum, doubleHash.slice(0, 4));\n return true;\n } catch (error) {\n return false;\n }\n}, \"validateP2PKHOrP2SHAddress\");\nvar validateSegwitAddress = /* @__PURE__ */ __name((address, network) => {\n try {\n assert(\n // On mainnet, the address must start with \"bc1\"\n network === \"mainnet\" && address.startsWith(\"bc1\") || // on testnet it must start with \"tb1\"\n network === \"testnet\" && address.startsWith(\"tb1\") || // on regtest it must start with \"bcrt1\"\n network === \"regtest\" && address.startsWith(\"bcrt1\"),\n \"address must start with bc1, tb1 or bcrt1\"\n );\n return isValidSegwitAddress(address);\n } catch {\n return false;\n }\n}, \"validateSegwitAddress\");\nvar validateBitcoinAddress = /* @__PURE__ */ __name((address, network) => validateP2PKHOrP2SHAddress(address, network) || validateSegwitAddress(address, network), \"validateBitcoinAddress\");\nvar validateBitcoinMainnetAddress = /* @__PURE__ */ __name((address) => validateBitcoinAddress(address, \"mainnet\"), \"validateBitcoinMainnetAddress\");\nvar validateBitcoinTestnetAddress = /* @__PURE__ */ __name((address) => validateBitcoinAddress(address, \"testnet\"), \"validateBitcoinTestnetAddress\");\nvar validateBitcoinRegtestAddress = /* @__PURE__ */ __name((address) => validateBitcoinAddress(address, \"regtest\"), \"validateBitcoinRegtestAddress\");\nvar validators = {\n mainnet: {\n Bitcoin: validateBitcoinMainnetAddress,\n Ethereum: validateEvmAddress,\n Polkadot: validatePolkadotAddress,\n Arbitrum: validateEvmAddress\n },\n perseverance: {\n Bitcoin: validateBitcoinTestnetAddress,\n Ethereum: validateEvmAddress,\n Polkadot: validatePolkadotAddress,\n Arbitrum: validateEvmAddress\n },\n sisyphos: {\n Bitcoin: validateBitcoinTestnetAddress,\n Ethereum: validateEvmAddress,\n Polkadot: validatePolkadotAddress,\n Arbitrum: validateEvmAddress\n },\n backspin: {\n Bitcoin: validateBitcoinRegtestAddress,\n Ethereum: validateEvmAddress,\n Polkadot: validatePolkadotAddress,\n Arbitrum: validateEvmAddress\n },\n localnet: {\n Bitcoin: validateBitcoinRegtestAddress,\n Ethereum: validateEvmAddress,\n Polkadot: validatePolkadotAddress,\n Arbitrum: validateEvmAddress\n }\n};\nvar assertValidAddress = /* @__PURE__ */ __name((chain2, address, network) => assert(validators[network][chain2](address), `Address \"${address}\" is not a valid \"${chain2}\" address for \"${network}\"`), \"assertValidAddress\");\n\n// ../shared/src/parsers.ts\nvar enumValues = Object.values;\nvar safeStringify = /* @__PURE__ */ __name((obj) => JSON.stringify(obj, (key, value) => typeof value === \"bigint\" ? value.toString() : value), \"safeStringify\");\nvar errorMap2 = /* @__PURE__ */ __name((_issue, context) => ({\n message: `received: ${safeStringify(context.data)}`\n}), \"errorMap\");\nvar string = z.string({\n errorMap: errorMap2\n});\nvar number = z.number({\n errorMap: errorMap2\n});\nvar numericString = string.regex(/^[0-9]+$/);\nvar numericOrEmptyString = string.regex(/^[0-9]*$/);\nvar hexString = string.refine((v) => /^0x[0-9a-f]*$/i.test(v));\nvar hexStringWithMaxByteSize = /* @__PURE__ */ __name((maxByteSize) => hexString.refine((val) => val.length / 2 <= maxByteSize + 1, {\n message: `String must be less than or equal to ${maxByteSize} bytes`\n}), \"hexStringWithMaxByteSize\");\nvar hexStringFromNumber = numericString.transform((arg) => `0x${BigInt(arg).toString(16)}`);\nvar btcAddress = /* @__PURE__ */ __name((network) => {\n if (network === \"mainnet\") {\n return string.regex(/^(1|3|bc1)/).refine(validateBitcoinMainnetAddress, (address) => ({\n message: `\"${address}\" is not a valid Bitcoin mainnet address`\n }));\n }\n return z.union([\n string.regex(/^(m|n|2|tb1)/).refine(validateBitcoinTestnetAddress, (address) => ({\n message: `\"${address}\" is not a valid Bitcoin testnet address`\n })),\n string.regex(/^bcrt1/).refine(validateBitcoinRegtestAddress, (address) => ({\n message: `\"${address}\" is not a valid Bitcoin regtest address`\n }))\n ]);\n}, \"btcAddress\");\nvar DOT_PREFIX = 0;\nvar dotAddress = z.union([\n string,\n hexString\n]).transform((arg) => {\n try {\n if (arg.startsWith(\"0x\")) {\n return encodeAddress(hexToU8a(arg), DOT_PREFIX);\n }\n const hex = u8aToHex(decodeAddress(arg));\n return encodeAddress(hex, DOT_PREFIX);\n } catch {\n return null;\n }\n}).refine(isString, {\n message: `address is not a valid polkadot address`\n});\nvar ethereumAddress = hexString.refine((address) => ethers.isAddress(address), (address) => ({\n message: `${address} is not a valid ethereum address`\n}));\nnumericString.transform((arg) => BigInt(arg));\nvar u128 = z.union([\n number,\n numericString,\n hexString\n]).transform((arg) => BigInt(arg));\nvar unsignedInteger = z.union([\n u128,\n z.number().transform((n) => BigInt(n))\n]);\nvar rustEnum = /* @__PURE__ */ __name((values) => z.object({\n __kind: z.enum(values)\n}).transform(({ __kind }) => __kind), \"rustEnum\");\nrustEnum(enumValues(InternalAssets));\nrustEnum(enumValues(Chains));\nvar chain = z.nativeEnum(Chains);\nvar asset = z.nativeEnum(Assets);\nz.nativeEnum(ChainflipNetworks);\nvar uncheckedAssetAndChain = z.object({\n asset: z.string(),\n chain: z.string()\n});\nuncheckedAssetAndChain.refine(isValidAssetAndChain);\nz.union([\n z.object({\n __kind: z.literal(\"CcmPrincipal\"),\n value: unsignedInteger\n }).transform(({ value: ccmId }) => ({\n type: \"PRINCIPAL\",\n ccmId\n })),\n z.object({\n __kind: z.literal(\"CcmGas\"),\n value: unsignedInteger\n }).transform(({ value: ccmId }) => ({\n type: \"GAS\",\n ccmId\n })),\n z.object({\n __kind: z.literal(\"Swap\")\n }).transform(() => ({\n type: \"SWAP\"\n }))\n]);\n\nexport { Assets, ChainflipNetworks, Chains, InternalAssets, __name, __publicField, assert, assertValidAddress, asset, assetConstants, btcAddress, chain, chainConstants, dotAddress, ethereumAddress, getInternalAsset, hexString, hexStringFromNumber, hexStringWithMaxByteSize, isNotNullish, isTestnet, isValidAssetAndChain, numericOrEmptyString, numericString, readChainAssetValue, u128, uncheckedAssetAndChain, unsignedInteger, z };\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1000 / freq;\n let timer = null;\n return function throttled() {\n const force = this === true;\n\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, arguments);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, arguments);\n }, threshold - (now - timestamp));\n }\n };\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType} = _config;\n let onCanceled;\n function done() {\n if (_config.cancelToken) {\n _config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (_config.signal) {\n _config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n _config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (typeof _config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof _config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n\n return new ReadableStream({\n type: 'bytes',\n\n async pull(controller) {\n const {done, value} = await iterator.next();\n\n if (done) {\n controller.close();\n onFinish();\n return;\n }\n\n let len = value.byteLength;\n onProgress && onProgress(bytes += len);\n controller.enqueue(new Uint8Array(value));\n },\n cancel(reason) {\n onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n const lengthComputable = total != null;\n return (loaded) => setTimeout(() => fn({\n lengthComputable,\n total,\n loaded\n }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n try {\n return utils.isReadableStream(new Response('').body);\n } catch(err) {\n // return undefined\n }\n})();\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n }\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n requestContentLength,\n progressEventReducer(onUploadProgress)\n ), null, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'cors' : 'omit';\n }\n\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n withCredentials\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n responseContentLength,\n progressEventReducer(onDownloadProgress, true)\n ), isStreamResponse && onFinish, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import { z, ChainflipNetworks, hexString, uncheckedAssetAndChain, __name, __publicField, Chains, InternalAssets } from './chunk-QNH6727P.mjs';\nimport axios from 'axios';\nimport { Interface, Contract } from 'ethers';\n\nvar numberOrHex = z.union([\n z.string(),\n z.number()\n]).transform((str) => BigInt(str));\nvar camelCase = /* @__PURE__ */ __name((str) => str.replace(/_([a-z])/g, (_, char) => char.toUpperCase()), \"camelCase\");\nvar camelCaseKeys = /* @__PURE__ */ __name((obj) => {\n if (typeof obj !== \"object\" || Array.isArray(obj) || obj === null)\n return obj;\n return Object.fromEntries(Object.entries(obj).map(([key, value]) => [\n camelCase(key),\n camelCaseKeys(value)\n ]));\n}, \"camelCaseKeys\");\nvar RPC_URLS = {\n [ChainflipNetworks.backspin]: \"https://backspin-rpc.staging\",\n [ChainflipNetworks.sisyphos]: \"https://archive.sisyphos.chainflip.io\",\n [ChainflipNetworks.perseverance]: \"https://archive.perseverance.chainflip.io\",\n [ChainflipNetworks.mainnet]: \"https://mainnet-rpc.chainflip.io\"\n};\nvar createRequest = /* @__PURE__ */ __name((method, responseParser) => async (urlOrNetwork, ...params) => {\n const url = \"network\" in urlOrNetwork ? RPC_URLS[urlOrNetwork.network] : urlOrNetwork.rpcUrl;\n const { data } = await axios.post(url, {\n jsonrpc: \"2.0\",\n method,\n params,\n id: 1\n });\n const result = responseParser.safeParse(data.result);\n if (result.success) {\n return camelCaseKeys(result.data);\n }\n throw new Error(`RPC request \"${method}\" failed`, {\n cause: data.error\n });\n}, \"createRequest\");\nvar fundingEnvironment = z.object({\n redemption_tax: numberOrHex,\n minimum_funding_amount: numberOrHex\n});\nvar getFundingEnvironment = createRequest(\"cf_funding_environment\", fundingEnvironment);\nvar chainAssetMapFactory = /* @__PURE__ */ __name((parser, defaultValue) => z.object({\n Bitcoin: z.object({\n BTC: parser\n }),\n Ethereum: z.object({\n ETH: parser,\n USDC: parser,\n FLIP: parser,\n USDT: parser.default(defaultValue)\n }),\n Polkadot: z.object({\n DOT: parser\n }),\n Arbitrum: z.object({\n ETH: parser,\n USDC: parser\n }).default({\n ETH: defaultValue,\n USDC: defaultValue\n })\n}), \"chainAssetMapFactory\");\nvar chainMapFactory = /* @__PURE__ */ __name((parser, defaultValue) => z.object({\n Bitcoin: parser,\n Ethereum: parser,\n Polkadot: parser,\n Arbitrum: parser.default(defaultValue)\n}), \"chainMapFactory\");\nvar chainNumberNullableMap = chainMapFactory(numberOrHex.nullable(), null);\nvar swappingEnvironment = z.object({\n maximum_swap_amounts: chainAssetMapFactory(numberOrHex.nullable(), null)\n});\ncreateRequest(\"cf_swapping_environment\", swappingEnvironment);\nvar rename = /* @__PURE__ */ __name((mapping) => (obj) => Object.fromEntries(Object.entries(obj).map(([key, value]) => [\n key in mapping ? mapping[key] : key,\n value\n])), \"rename\");\nvar ingressEgressEnvironment = z.object({\n minimum_deposit_amounts: chainAssetMapFactory(numberOrHex, 0),\n ingress_fees: chainAssetMapFactory(numberOrHex.nullable(), null),\n egress_fees: chainAssetMapFactory(numberOrHex.nullable(), null),\n witness_safety_margins: chainNumberNullableMap,\n egress_dust_limits: chainAssetMapFactory(numberOrHex, 1),\n // TODO(1.3): remove optional and default value\n channel_opening_fees: chainMapFactory(numberOrHex, 0).optional().default({\n Bitcoin: 0,\n Ethereum: 0,\n Polkadot: 0,\n Arbitrum: 0\n })\n}).transform(rename({\n egress_dust_limits: \"minimum_egress_amounts\"\n}));\ncreateRequest(\"cf_ingress_egress_environment\", ingressEgressEnvironment);\nvar rpcAsset = z.union([\n z.literal(\"BTC\"),\n z.object({\n chain: z.literal(\"Bitcoin\"),\n asset: z.literal(\"BTC\")\n }),\n z.literal(\"DOT\"),\n z.object({\n chain: z.literal(\"Polkadot\"),\n asset: z.literal(\"DOT\")\n }),\n z.literal(\"FLIP\"),\n z.object({\n chain: z.literal(\"Ethereum\"),\n asset: z.literal(\"FLIP\")\n }),\n z.literal(\"ETH\"),\n z.object({\n chain: z.literal(\"Ethereum\"),\n asset: z.literal(\"ETH\")\n }),\n z.literal(\"USDC\"),\n z.object({\n chain: z.literal(\"Ethereum\"),\n asset: z.literal(\"USDC\")\n }),\n z.object({\n chain: z.literal(\"Ethereum\"),\n asset: z.literal(\"USDT\")\n }),\n z.object({\n chain: z.literal(\"Arbitrum\"),\n asset: z.literal(\"ETH\")\n }),\n z.object({\n chain: z.literal(\"Arbitrum\"),\n asset: z.literal(\"USDC\")\n })\n]);\nvar poolInfo = z.intersection(z.object({\n limit_order_fee_hundredth_pips: z.number(),\n range_order_fee_hundredth_pips: z.number()\n}), z.union([\n z.object({\n quote_asset: rpcAsset\n }),\n z.object({\n pair_asset: rpcAsset\n }).transform(({ pair_asset }) => ({\n quote_asset: pair_asset\n }))\n]));\nvar feesInfo = z.object({\n Bitcoin: z.object({\n BTC: poolInfo\n }),\n Ethereum: z.object({\n ETH: poolInfo,\n FLIP: poolInfo\n }),\n Polkadot: z.object({\n DOT: poolInfo\n }),\n Arbitrum: z.object({\n ETH: poolInfo,\n USDC: poolInfo\n }).optional()\n});\nvar poolsEnvironment = z.object({\n fees: feesInfo\n});\ncreateRequest(\"cf_pool_info\", poolsEnvironment);\nvar environment = z.object({\n ingress_egress: ingressEgressEnvironment,\n swapping: swappingEnvironment,\n funding: fundingEnvironment\n});\nvar getEnvironment = createRequest(\"cf_environment\", environment);\nvar swapRate = z.object({\n output: numberOrHex\n});\ncreateRequest(\"cf_swap_rate\", swapRate);\ncreateRequest(\"state_getMetadata\", hexString);\nvar supportedAssetsV120 = z.object({\n Bitcoin: z.array(z.string()),\n Ethereum: z.array(z.string()),\n Polkadot: z.array(z.string())\n}).transform((data) => [\n ...data.Bitcoin.map((asset) => ({\n chain: \"Bitcoin\",\n asset\n })),\n ...data.Ethereum.map((asset) => ({\n chain: \"Ethereum\",\n asset\n })),\n ...data.Polkadot.map((asset) => ({\n chain: \"Polkadot\",\n asset\n }))\n]);\nvar supportedAssetsV130 = z.array(uncheckedAssetAndChain);\nvar supportedAssets = z.union([\n supportedAssetsV120,\n supportedAssetsV130\n]);\nvar getSupportedAssets = createRequest(\"cf_supported_assets\", supportedAssets);\nvar _abi = [\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"owner\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\"\n }\n ],\n name: \"allowance\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"spender\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"approve\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address\",\n name: \"account\",\n type: \"address\"\n }\n ],\n name: \"balanceOf\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n }\n];\nvar _ERC20__factory = class _ERC20__factory {\n static createInterface() {\n return new Interface(_abi);\n }\n static connect(address, runner) {\n return new Contract(address, _abi, runner);\n }\n};\n__name(_ERC20__factory, \"ERC20__factory\");\n__publicField(_ERC20__factory, \"abi\", _abi);\nvar ERC20__factory = _ERC20__factory;\nvar _abi2 = [\n {\n inputs: [\n {\n internalType: \"contract IKeyManager\",\n name: \"keyManager\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"minFunding\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bool\",\n name: \"communityGuardDisabled\",\n type: \"bool\"\n }\n ],\n name: \"CommunityGuardDisabled\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"flip\",\n type: \"address\"\n }\n ],\n name: \"FLIPSet\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"oldSupply\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newSupply\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"stateChainBlockNumber\",\n type: \"uint256\"\n }\n ],\n name: \"FlipSupplyUpdated\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"nodeID\",\n type: \"bytes32\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"funder\",\n type: \"address\"\n }\n ],\n name: \"Funded\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"to\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"GovernanceWithdrawal\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"oldMinFunding\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"newMinFunding\",\n type: \"uint256\"\n }\n ],\n name: \"MinFundingChanged\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"nodeID\",\n type: \"bytes32\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"RedemptionExecuted\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"nodeID\",\n type: \"bytes32\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"RedemptionExpired\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"bytes32\",\n name: \"nodeID\",\n type: \"bytes32\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"redeemAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint48\",\n name: \"startTime\",\n type: \"uint48\"\n },\n {\n indexed: false,\n internalType: \"uint48\",\n name: \"expiryTime\",\n type: \"uint48\"\n }\n ],\n name: \"RedemptionRegistered\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bool\",\n name: \"suspended\",\n type: \"bool\"\n }\n ],\n name: \"Suspended\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"keyManager\",\n type: \"address\"\n }\n ],\n name: \"UpdatedKeyManager\",\n type: \"event\"\n },\n {\n inputs: [],\n name: \"REDEMPTION_DELAY\",\n outputs: [\n {\n internalType: \"uint48\",\n name: \"\",\n type: \"uint48\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"disableCommunityGuard\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"enableCommunityGuard\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"nodeID\",\n type: \"bytes32\"\n }\n ],\n name: \"executeRedemption\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"nodeID\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"fundStateChainAccount\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getCommunityGuardDisabled\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getCommunityKey\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getFLIP\",\n outputs: [\n {\n internalType: \"contract IFLIP\",\n name: \"\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getGovernor\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getKeyManager\",\n outputs: [\n {\n internalType: \"contract IKeyManager\",\n name: \"\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getLastSupplyUpdateBlockNumber\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getMinimumFunding\",\n outputs: [\n {\n internalType: \"uint256\",\n name: \"\",\n type: \"uint256\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"nodeID\",\n type: \"bytes32\"\n }\n ],\n name: \"getPendingRedemption\",\n outputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"redeemAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint48\",\n name: \"startTime\",\n type: \"uint48\"\n },\n {\n internalType: \"uint48\",\n name: \"expiryTime\",\n type: \"uint48\"\n }\n ],\n internalType: \"struct IStateChainGateway.Redemption\",\n name: \"\",\n type: \"tuple\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getSuspendedState\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"govUpdateFlipIssuer\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"govWithdraw\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n internalType: \"bytes32\",\n name: \"nodeID\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"redeemAddress\",\n type: \"address\"\n },\n {\n internalType: \"uint48\",\n name: \"expiryTime\",\n type: \"uint48\"\n }\n ],\n name: \"registerRedemption\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"resume\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"contract IFLIP\",\n name: \"flip\",\n type: \"address\"\n }\n ],\n name: \"setFlip\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint256\",\n name: \"newMinFunding\",\n type: \"uint256\"\n }\n ],\n name: \"setMinFunding\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"suspend\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n internalType: \"address\",\n name: \"newIssuer\",\n type: \"address\"\n },\n {\n internalType: \"bool\",\n name: \"omitChecks\",\n type: \"bool\"\n }\n ],\n name: \"updateFlipIssuer\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n internalType: \"uint256\",\n name: \"newTotalSupply\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"stateChainBlockNumber\",\n type: \"uint256\"\n }\n ],\n name: \"updateFlipSupply\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n internalType: \"contract IKeyManager\",\n name: \"keyManager\",\n type: \"address\"\n },\n {\n internalType: \"bool\",\n name: \"omitChecks\",\n type: \"bool\"\n }\n ],\n name: \"updateKeyManager\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n }\n];\nvar _StateChainGateway__factory = class _StateChainGateway__factory {\n static createInterface() {\n return new Interface(_abi2);\n }\n static connect(address, runner) {\n return new Contract(address, _abi2, runner);\n }\n};\n__name(_StateChainGateway__factory, \"StateChainGateway__factory\");\n__publicField(_StateChainGateway__factory, \"abi\", _abi2);\nvar StateChainGateway__factory = _StateChainGateway__factory;\nvar _abi3 = [\n {\n inputs: [\n {\n internalType: \"contract IKeyManager\",\n name: \"keyManager\",\n type: \"address\"\n }\n ],\n stateMutability: \"nonpayable\",\n type: \"constructor\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"swapID\",\n type: \"bytes32\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"AddGasNative\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bytes32\",\n name: \"swapID\",\n type: \"bytes32\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n }\n ],\n name: \"AddGasToken\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bool\",\n name: \"communityGuardDisabled\",\n type: \"bool\"\n }\n ],\n name: \"CommunityGuardDisabled\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address payable\",\n name: \"multicallAddress\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"reason\",\n type: \"bytes\"\n }\n ],\n name: \"ExecuteActionsFailed\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"bool\",\n name: \"suspended\",\n type: \"bool\"\n }\n ],\n name: \"Suspended\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"dstChain\",\n type: \"uint32\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"dstAddress\",\n type: \"bytes\"\n },\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"dstToken\",\n type: \"uint32\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"cfParameters\",\n type: \"bytes\"\n }\n ],\n name: \"SwapNative\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"dstChain\",\n type: \"uint32\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"dstAddress\",\n type: \"bytes\"\n },\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"dstToken\",\n type: \"uint32\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"srcToken\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"cfParameters\",\n type: \"bytes\"\n }\n ],\n name: \"SwapToken\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n name: \"TransferNativeFailed\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"reason\",\n type: \"bytes\"\n }\n ],\n name: \"TransferTokenFailed\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"address\",\n name: \"keyManager\",\n type: \"address\"\n }\n ],\n name: \"UpdatedKeyManager\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"dstChain\",\n type: \"uint32\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"dstAddress\",\n type: \"bytes\"\n },\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"dstToken\",\n type: \"uint32\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"message\",\n type: \"bytes\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"gasAmount\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"cfParameters\",\n type: \"bytes\"\n }\n ],\n name: \"XCallNative\",\n type: \"event\"\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"dstChain\",\n type: \"uint32\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"dstAddress\",\n type: \"bytes\"\n },\n {\n indexed: false,\n internalType: \"uint32\",\n name: \"dstToken\",\n type: \"uint32\"\n },\n {\n indexed: false,\n internalType: \"address\",\n name: \"srcToken\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n indexed: true,\n internalType: \"address\",\n name: \"sender\",\n type: \"address\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"message\",\n type: \"bytes\"\n },\n {\n indexed: false,\n internalType: \"uint256\",\n name: \"gasAmount\",\n type: \"uint256\"\n },\n {\n indexed: false,\n internalType: \"bytes\",\n name: \"cfParameters\",\n type: \"bytes\"\n }\n ],\n name: \"XCallToken\",\n type: \"event\"\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"swapID\",\n type: \"bytes32\"\n }\n ],\n name: \"addGasNative\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"bytes32\",\n name: \"swapID\",\n type: \"bytes32\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n internalType: \"contract IERC20\",\n name: \"token\",\n type: \"address\"\n }\n ],\n name: \"addGasToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"bytes32\",\n name: \"swapID\",\n type: \"bytes32\"\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.DeployFetchParams[]\",\n name: \"deployFetchParamsArray\",\n type: \"tuple[]\"\n },\n {\n components: [\n {\n internalType: \"address payable\",\n name: \"fetchContract\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.FetchParams[]\",\n name: \"fetchParamsArray\",\n type: \"tuple[]\"\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n internalType: \"struct IShared.TransferParams[]\",\n name: \"transferParamsArray\",\n type: \"tuple[]\"\n }\n ],\n name: \"allBatch\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"bytes32\",\n name: \"swapID\",\n type: \"bytes32\"\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.DeployFetchParams[]\",\n name: \"deployFetchParamsArray\",\n type: \"tuple[]\"\n }\n ],\n name: \"deployAndFetchBatch\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"disableCommunityGuard\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"enableCommunityGuard\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n internalType: \"struct IShared.TransferParams\",\n name: \"transferParams\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"enum IMulticall.CallType\",\n name: \"callType\",\n type: \"uint8\"\n },\n {\n internalType: \"address\",\n name: \"target\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"value\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"callData\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"payload\",\n type: \"bytes\"\n }\n ],\n internalType: \"struct IMulticall.Call[]\",\n name: \"calls\",\n type: \"tuple[]\"\n },\n {\n internalType: \"uint256\",\n name: \"gasMulticall\",\n type: \"uint256\"\n }\n ],\n name: \"executeActions\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n internalType: \"address\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n internalType: \"uint32\",\n name: \"srcChain\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"srcAddress\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"message\",\n type: \"bytes\"\n }\n ],\n name: \"executexCall\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n internalType: \"struct IShared.TransferParams\",\n name: \"transferParams\",\n type: \"tuple\"\n },\n {\n internalType: \"uint32\",\n name: \"srcChain\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"srcAddress\",\n type: \"bytes\"\n },\n {\n internalType: \"bytes\",\n name: \"message\",\n type: \"bytes\"\n }\n ],\n name: \"executexSwapAndCall\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"address payable\",\n name: \"fetchContract\",\n type: \"address\"\n },\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.FetchParams[]\",\n name: \"fetchParamsArray\",\n type: \"tuple[]\"\n }\n ],\n name: \"fetchBatch\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getCommunityGuardDisabled\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getCommunityKey\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getGovernor\",\n outputs: [\n {\n internalType: \"address\",\n name: \"\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getKeyManager\",\n outputs: [\n {\n internalType: \"contract IKeyManager\",\n name: \"\",\n type: \"address\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"getSuspendedState\",\n outputs: [\n {\n internalType: \"bool\",\n name: \"\",\n type: \"bool\"\n }\n ],\n stateMutability: \"view\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"address[]\",\n name: \"tokens\",\n type: \"address[]\"\n }\n ],\n name: \"govWithdraw\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"resume\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [],\n name: \"suspend\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n internalType: \"struct IShared.TransferParams\",\n name: \"transferParams\",\n type: \"tuple\"\n }\n ],\n name: \"transfer\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n components: [\n {\n internalType: \"address\",\n name: \"token\",\n type: \"address\"\n },\n {\n internalType: \"address payable\",\n name: \"recipient\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n }\n ],\n internalType: \"struct IShared.TransferParams[]\",\n name: \"transferParamsArray\",\n type: \"tuple[]\"\n }\n ],\n name: \"transferBatch\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"sig\",\n type: \"uint256\"\n },\n {\n internalType: \"uint256\",\n name: \"nonce\",\n type: \"uint256\"\n },\n {\n internalType: \"address\",\n name: \"kTimesGAddress\",\n type: \"address\"\n }\n ],\n internalType: \"struct IShared.SigData\",\n name: \"sigData\",\n type: \"tuple\"\n },\n {\n internalType: \"contract IKeyManager\",\n name: \"keyManager\",\n type: \"address\"\n },\n {\n internalType: \"bool\",\n name: \"omitChecks\",\n type: \"bool\"\n }\n ],\n name: \"updateKeyManager\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"dstChain\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"dstAddress\",\n type: \"bytes\"\n },\n {\n internalType: \"uint32\",\n name: \"dstToken\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"message\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"gasAmount\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"cfParameters\",\n type: \"bytes\"\n }\n ],\n name: \"xCallNative\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"dstChain\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"dstAddress\",\n type: \"bytes\"\n },\n {\n internalType: \"uint32\",\n name: \"dstToken\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"message\",\n type: \"bytes\"\n },\n {\n internalType: \"uint256\",\n name: \"gasAmount\",\n type: \"uint256\"\n },\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"cfParameters\",\n type: \"bytes\"\n }\n ],\n name: \"xCallToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"dstChain\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"dstAddress\",\n type: \"bytes\"\n },\n {\n internalType: \"uint32\",\n name: \"dstToken\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"cfParameters\",\n type: \"bytes\"\n }\n ],\n name: \"xSwapNative\",\n outputs: [],\n stateMutability: \"payable\",\n type: \"function\"\n },\n {\n inputs: [\n {\n internalType: \"uint32\",\n name: \"dstChain\",\n type: \"uint32\"\n },\n {\n internalType: \"bytes\",\n name: \"dstAddress\",\n type: \"bytes\"\n },\n {\n internalType: \"uint32\",\n name: \"dstToken\",\n type: \"uint32\"\n },\n {\n internalType: \"contract IERC20\",\n name: \"srcToken\",\n type: \"address\"\n },\n {\n internalType: \"uint256\",\n name: \"amount\",\n type: \"uint256\"\n },\n {\n internalType: \"bytes\",\n name: \"cfParameters\",\n type: \"bytes\"\n }\n ],\n name: \"xSwapToken\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\"\n },\n {\n stateMutability: \"payable\",\n type: \"receive\"\n }\n];\nvar _Vault__factory = class _Vault__factory {\n static createInterface() {\n return new Interface(_abi3);\n }\n static connect(address, runner) {\n return new Contract(address, _abi3, runner);\n }\n};\n__name(_Vault__factory, \"Vault__factory\");\n__publicField(_Vault__factory, \"abi\", _abi3);\nvar Vault__factory = _Vault__factory;\n\n// ../shared/src/consts.ts\n({\n [ChainflipNetworks.backspin]: 1e3,\n [ChainflipNetworks.sisyphos]: 1e3,\n [ChainflipNetworks.perseverance]: 1e3,\n [ChainflipNetworks.mainnet]: 1e3\n});\nvar ETHEREUM_EVM_CHAIN_ID = {\n [ChainflipNetworks.backspin]: 10997,\n [ChainflipNetworks.sisyphos]: 11155111,\n [ChainflipNetworks.perseverance]: 11155111,\n [ChainflipNetworks.mainnet]: 1\n};\nvar ARBITRUM_EVM_CHAIN_ID = {\n [ChainflipNetworks.backspin]: 412346,\n [ChainflipNetworks.sisyphos]: 421614,\n [ChainflipNetworks.perseverance]: 421614,\n [ChainflipNetworks.mainnet]: 42161\n};\nvar getEvmChainId = /* @__PURE__ */ __name((chain, network) => {\n switch (chain) {\n case Chains.Ethereum:\n return ETHEREUM_EVM_CHAIN_ID[network];\n case Chains.Arbitrum:\n return ARBITRUM_EVM_CHAIN_ID[network];\n default:\n return void 0;\n }\n}, \"getEvmChainId\");\nvar SEPOLIA_USDC_CONTRACT_ADDRESS = \"0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238\";\nvar SEPOLIA_USDT_CONTRACT_ADDRESS = \"0x27CEA6Eb8a21Aae05Eb29C91c5CA10592892F584\";\nvar ADDRESSES = {\n [ChainflipNetworks.backspin]: {\n FLIP_CONTRACT_ADDRESS: \"0x10C6E9530F1C1AF873a391030a1D9E8ed0630D26\",\n USDC_CONTRACT_ADDRESS: \"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0\",\n USDT_CONTRACT_ADDRESS: \"0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82\",\n ARBUSDC_CONTRACT_ADDRESS: \"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9\",\n VAULT_CONTRACT_ADDRESS: \"0xB7A5bd0345EF1Cc5E66bf61BdeC17D2461fBd968\",\n STATE_CHAIN_GATEWAY_ADDRESS: \"0xeEBe00Ac0756308ac4AaBfD76c05c4F3088B8883\",\n ARB_VAULT_CONTRACT_ADDRESS: \"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512\"\n },\n [ChainflipNetworks.sisyphos]: {\n FLIP_CONTRACT_ADDRESS: \"0xcD079EAB6B5443b545788Fd210C8800FEADd87fa\",\n USDC_CONTRACT_ADDRESS: SEPOLIA_USDC_CONTRACT_ADDRESS,\n USDT_CONTRACT_ADDRESS: SEPOLIA_USDT_CONTRACT_ADDRESS,\n ARBUSDC_CONTRACT_ADDRESS: \"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d\",\n VAULT_CONTRACT_ADDRESS: \"0xa94d6b1853F3cb611Ed3cCb701b4fdA5a9DACe85\",\n STATE_CHAIN_GATEWAY_ADDRESS: \"0x1F7fE41C798cc7b1D34BdC8de2dDDA4a4bE744D9\",\n ARB_VAULT_CONTRACT_ADDRESS: \"\"\n },\n [ChainflipNetworks.perseverance]: {\n FLIP_CONTRACT_ADDRESS: \"0xdC27c60956cB065D19F08bb69a707E37b36d8086\",\n USDC_CONTRACT_ADDRESS: SEPOLIA_USDC_CONTRACT_ADDRESS,\n USDT_CONTRACT_ADDRESS: SEPOLIA_USDT_CONTRACT_ADDRESS,\n ARBUSDC_CONTRACT_ADDRESS: \"0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d\",\n VAULT_CONTRACT_ADDRESS: \"0x36eaD71325604DC15d35FAE584D7b50646D81753\",\n STATE_CHAIN_GATEWAY_ADDRESS: \"0xA34a967197Ee90BB7fb28e928388a573c5CFd099\",\n ARB_VAULT_CONTRACT_ADDRESS: \"\"\n },\n [ChainflipNetworks.mainnet]: {\n FLIP_CONTRACT_ADDRESS: \"0x826180541412D574cf1336d22c0C0a287822678A\",\n USDC_CONTRACT_ADDRESS: \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\",\n USDT_CONTRACT_ADDRESS: \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n ARBUSDC_CONTRACT_ADDRESS: \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\",\n VAULT_CONTRACT_ADDRESS: \"0xF5e10380213880111522dd0efD3dbb45b9f62Bcc\",\n STATE_CHAIN_GATEWAY_ADDRESS: \"0x6995Ab7c4D7F4B03f467Cf4c8E920427d9621DBd\",\n ARB_VAULT_CONTRACT_ADDRESS: \"\"\n }\n};\n\n// ../shared/src/contracts.ts\nvar extractOverrides = /* @__PURE__ */ __name((transactionOverrides) => {\n const { wait, ...ethersOverrides } = transactionOverrides;\n return ethersOverrides;\n}, \"extractOverrides\");\nfunction getTokenContractAddress(asset, network) {\n if (asset === InternalAssets.Flip)\n return ADDRESSES[network].FLIP_CONTRACT_ADDRESS;\n if (asset === InternalAssets.Usdc)\n return ADDRESSES[network].USDC_CONTRACT_ADDRESS;\n if (asset === InternalAssets.Usdt)\n return ADDRESSES[network].USDT_CONTRACT_ADDRESS;\n if (asset === InternalAssets.ArbUsdc)\n return ADDRESSES[network].ARBUSDC_CONTRACT_ADDRESS;\n throw new Error(`No contract address for ${asset} on ${network}`);\n}\n__name(getTokenContractAddress, \"getTokenContractAddress\");\nvar getStateChainGatewayContractAddress = /* @__PURE__ */ __name((network) => ADDRESSES[network].STATE_CHAIN_GATEWAY_ADDRESS, \"getStateChainGatewayContractAddress\");\nvar checkAllowance = /* @__PURE__ */ __name(async (amount, spenderAddress, erc20Address, signer) => {\n const erc20 = ERC20__factory.connect(erc20Address, signer);\n const signerAddress = await signer.getAddress();\n const allowance = await erc20.allowance(signerAddress, spenderAddress);\n return {\n allowance,\n hasSufficientAllowance: allowance >= amount,\n erc20\n };\n}, \"checkAllowance\");\nvar approve = /* @__PURE__ */ __name(async (amount, spenderAddress, erc20, allowance, txOpts) => {\n if (allowance >= amount)\n return null;\n const transaction = await erc20.approve(spenderAddress, amount - allowance, extractOverrides(txOpts));\n return transaction.wait(txOpts.wait);\n}, \"approve\");\nvar getVaultContractAddress = /* @__PURE__ */ __name((chain, network) => {\n if (chain === Chains.Ethereum)\n return ADDRESSES[network].VAULT_CONTRACT_ADDRESS;\n if (chain === Chains.Arbitrum)\n return ADDRESSES[network].ARB_VAULT_CONTRACT_ADDRESS;\n throw new Error(`No vault contract address for ${chain} on ${network}`);\n}, \"getVaultContractAddress\");\nvar getFlipBalance = /* @__PURE__ */ __name(async (network, signer) => {\n const flipAddress = getTokenContractAddress(InternalAssets.Flip, network);\n const flip = ERC20__factory.connect(flipAddress, signer);\n return flip.balanceOf(await signer.getAddress());\n}, \"getFlipBalance\");\n\nexport { StateChainGateway__factory, Vault__factory, approve, checkAllowance, extractOverrides, getEnvironment, getEvmChainId, getFlipBalance, getFundingEnvironment, getStateChainGatewayContractAddress, getSupportedAssets, getTokenContractAddress, getVaultContractAddress };\n","import { z, chain, asset, numericString, numericOrEmptyString, hexStringWithMaxByteSize } from './chunk-QNH6727P.mjs';\n\n// ../shared/src/schemas.ts\nz.object({\n srcChain: chain,\n srcAsset: asset,\n destChain: chain,\n destAsset: asset,\n amount: numericString,\n brokerCommissionBps: numericOrEmptyString.transform((v) => Number(v)).optional(),\n boostFeeBps: numericOrEmptyString.transform((v) => Number(v)).optional()\n});\nvar ccmMetadataSchema = z.object({\n gasBudget: numericString,\n message: hexStringWithMaxByteSize(1024 * 10)\n});\nz.object({\n srcAsset: asset,\n destAsset: asset,\n srcChain: chain,\n destChain: chain,\n destAddress: z.string(),\n amount: numericString,\n ccmMetadata: ccmMetadataSchema.optional(),\n boostFeeBps: z.number().optional()\n}).transform(({ amount, ...rest }) => ({\n ...rest,\n expectedDepositAmount: amount\n}));\n\nexport { ccmMetadataSchema };\n","import { getEnvironment, getSupportedAssets, getVaultContractAddress, approve, getTokenContractAddress, getEvmChainId, checkAllowance, extractOverrides, Vault__factory } from './chunk-BFEB7XAP.mjs';\nimport { ccmMetadataSchema } from './chunk-J5DGP4KI.mjs';\nimport { __name, ChainflipNetworks, __publicField, Chains, assetConstants, isValidAssetAndChain, getInternalAsset, isNotNullish, assert, readChainAssetValue, isTestnet, assertValidAddress, chainConstants, dotAddress } from './chunk-QNH6727P.mjs';\nexport { Assets, InternalAssets as ChainflipIds, ChainflipNetworks, Chains, getInternalAsset as getChainflipId } from './chunk-QNH6727P.mjs';\nimport { u8aToHex } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport axios from 'axios';\n\n// ../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable-ade1bad8.mjs\nfunction identity(x) {\n return x;\n}\n__name(identity, \"identity\");\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return /* @__PURE__ */ __name(function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n }, \"piped\");\n}\n__name(pipeFromArray, \"pipeFromArray\");\nfunction observable(subscribe) {\n const self = {\n subscribe(observer) {\n let teardownRef = null;\n let isDone = false;\n let unsubscribed = false;\n let teardownImmediately = false;\n function unsubscribe() {\n if (teardownRef === null) {\n teardownImmediately = true;\n return;\n }\n if (unsubscribed) {\n return;\n }\n unsubscribed = true;\n if (typeof teardownRef === \"function\") {\n teardownRef();\n } else if (teardownRef) {\n teardownRef.unsubscribe();\n }\n }\n __name(unsubscribe, \"unsubscribe\");\n teardownRef = subscribe({\n next(value) {\n if (isDone) {\n return;\n }\n observer.next?.(value);\n },\n error(err) {\n if (isDone) {\n return;\n }\n isDone = true;\n observer.error?.(err);\n unsubscribe();\n },\n complete() {\n if (isDone) {\n return;\n }\n isDone = true;\n observer.complete?.();\n unsubscribe();\n }\n });\n if (teardownImmediately) {\n unsubscribe();\n }\n return {\n unsubscribe\n };\n },\n pipe(...operations) {\n return pipeFromArray(operations)(self);\n }\n };\n return self;\n}\n__name(observable, \"observable\");\n\n// ../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/observable/index.mjs\nfunction share(_opts) {\n return (originalObserver) => {\n let refCount = 0;\n let subscription = null;\n const observers = [];\n function startIfNeeded() {\n if (subscription) {\n return;\n }\n subscription = originalObserver.subscribe({\n next(value) {\n for (const observer of observers) {\n observer.next?.(value);\n }\n },\n error(error) {\n for (const observer of observers) {\n observer.error?.(error);\n }\n },\n complete() {\n for (const observer of observers) {\n observer.complete?.();\n }\n }\n });\n }\n __name(startIfNeeded, \"startIfNeeded\");\n function resetIfNeeded() {\n if (refCount === 0 && subscription) {\n const _sub = subscription;\n subscription = null;\n _sub.unsubscribe();\n }\n }\n __name(resetIfNeeded, \"resetIfNeeded\");\n return {\n subscribe(observer) {\n refCount++;\n observers.push(observer);\n startIfNeeded();\n return {\n unsubscribe() {\n refCount--;\n resetIfNeeded();\n const index = observers.findIndex((v) => v === observer);\n if (index > -1) {\n observers.splice(index, 1);\n }\n }\n };\n }\n };\n };\n}\n__name(share, \"share\");\nvar _ObservableAbortError = class _ObservableAbortError extends Error {\n constructor(message) {\n super(message);\n this.name = \"ObservableAbortError\";\n Object.setPrototypeOf(this, _ObservableAbortError.prototype);\n }\n};\n__name(_ObservableAbortError, \"ObservableAbortError\");\nvar ObservableAbortError = _ObservableAbortError;\nfunction observableToPromise(observable2) {\n let abort;\n const promise = new Promise((resolve, reject) => {\n let isDone = false;\n function onDone() {\n if (isDone) {\n return;\n }\n isDone = true;\n reject(new ObservableAbortError(\"This operation was aborted.\"));\n obs$.unsubscribe();\n }\n __name(onDone, \"onDone\");\n const obs$ = observable2.subscribe({\n next(data) {\n isDone = true;\n resolve(data);\n onDone();\n },\n error(data) {\n isDone = true;\n reject(data);\n onDone();\n },\n complete() {\n isDone = true;\n onDone();\n }\n });\n abort = onDone;\n });\n return {\n promise,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n abort\n };\n}\n__name(observableToPromise, \"observableToPromise\");\n\n// ../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/splitLink-4c75f7be.mjs\nfunction createChain(opts) {\n return observable((observer) => {\n function execute(index = 0, op = opts.op) {\n const next = opts.links[index];\n if (!next) {\n throw new Error(\"No more links to execute - did you forget to add an ending link?\");\n }\n const subscription = next({\n op,\n next(nextOp) {\n const nextObserver = execute(index + 1, nextOp);\n return nextObserver;\n }\n });\n return subscription;\n }\n __name(execute, \"execute\");\n const obs$ = execute();\n return obs$.subscribe(observer);\n });\n}\n__name(createChain, \"createChain\");\n\n// ../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/codes-c924c3db.mjs\nfunction invert(obj) {\n const newObj = /* @__PURE__ */ Object.create(null);\n for (const key in obj) {\n const v = obj[key];\n newObj[v] = key;\n }\n return newObj;\n}\n__name(invert, \"invert\");\nvar TRPC_ERROR_CODES_BY_KEY = {\n /**\n * Invalid JSON was received by the server.\n * An error occurred on the server while parsing the JSON text.\n */\n PARSE_ERROR: -32700,\n /**\n * The JSON sent is not a valid Request object.\n */\n BAD_REQUEST: -32600,\n // Internal JSON-RPC error\n INTERNAL_SERVER_ERROR: -32603,\n NOT_IMPLEMENTED: -32603,\n // Implementation specific errors\n UNAUTHORIZED: -32001,\n FORBIDDEN: -32003,\n NOT_FOUND: -32004,\n METHOD_NOT_SUPPORTED: -32005,\n TIMEOUT: -32008,\n CONFLICT: -32009,\n PRECONDITION_FAILED: -32012,\n PAYLOAD_TOO_LARGE: -32013,\n UNPROCESSABLE_CONTENT: -32022,\n TOO_MANY_REQUESTS: -32029,\n CLIENT_CLOSED_REQUEST: -32099\n};\ninvert(TRPC_ERROR_CODES_BY_KEY);\n\n// ../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/index-f91d720c.mjs\ninvert(TRPC_ERROR_CODES_BY_KEY);\nvar noop = /* @__PURE__ */ __name(() => {\n}, \"noop\");\nfunction createInnerProxy(callback, path) {\n const proxy = new Proxy(noop, {\n get(_obj, key) {\n if (typeof key !== \"string\" || key === \"then\") {\n return void 0;\n }\n return createInnerProxy(callback, [\n ...path,\n key\n ]);\n },\n apply(_1, _2, args) {\n const isApply = path[path.length - 1] === \"apply\";\n return callback({\n args: isApply ? args.length >= 2 ? args[1] : [] : args,\n path: isApply ? path.slice(0, -1) : path\n });\n }\n });\n return proxy;\n}\n__name(createInnerProxy, \"createInnerProxy\");\nvar createRecursiveProxy = /* @__PURE__ */ __name((callback) => createInnerProxy(callback, []), \"createRecursiveProxy\");\nvar createFlatProxy = /* @__PURE__ */ __name((callback) => {\n return new Proxy(noop, {\n get(_obj, name) {\n if (typeof name !== \"string\" || name === \"then\") {\n return void 0;\n }\n return callback(name);\n }\n });\n}, \"createFlatProxy\");\n\n// ../../node_modules/.pnpm/@trpc+server@10.45.2/node_modules/@trpc/server/dist/getCauseFromUnknown-2d66414a.mjs\nfunction isObject(value) {\n return !!value && !Array.isArray(value) && typeof value === \"object\";\n}\n__name(isObject, \"isObject\");\nvar _UnknownCauseError = class _UnknownCauseError extends Error {\n};\n__name(_UnknownCauseError, \"UnknownCauseError\");\nvar UnknownCauseError = _UnknownCauseError;\nfunction getCauseFromUnknown(cause) {\n if (cause instanceof Error) {\n return cause;\n }\n const type = typeof cause;\n if (type === \"undefined\" || type === \"function\" || cause === null) {\n return void 0;\n }\n if (type !== \"object\") {\n return new Error(String(cause));\n }\n if (isObject(cause)) {\n const err = new UnknownCauseError();\n for (const key in cause) {\n err[key] = cause[key];\n }\n return err;\n }\n return void 0;\n}\n__name(getCauseFromUnknown, \"getCauseFromUnknown\");\n\n// ../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/transformResult-ace864b8.mjs\nfunction isObject2(value) {\n return !!value && !Array.isArray(value) && typeof value === \"object\";\n}\n__name(isObject2, \"isObject\");\nfunction transformResultInner(response, runtime) {\n if (\"error\" in response) {\n const error = runtime.transformer.deserialize(response.error);\n return {\n ok: false,\n error: {\n ...response,\n error\n }\n };\n }\n const result = {\n ...response.result,\n ...(!response.result.type || response.result.type === \"data\") && {\n type: \"data\",\n data: runtime.transformer.deserialize(response.result.data)\n }\n };\n return {\n ok: true,\n result\n };\n}\n__name(transformResultInner, \"transformResultInner\");\nvar _TransformResultError = class _TransformResultError extends Error {\n constructor() {\n super(\"Unable to transform response from server\");\n }\n};\n__name(_TransformResultError, \"TransformResultError\");\nvar TransformResultError = _TransformResultError;\nfunction transformResult(response, runtime) {\n let result;\n try {\n result = transformResultInner(response, runtime);\n } catch (err) {\n throw new TransformResultError();\n }\n if (!result.ok && (!isObject2(result.error.error) || typeof result.error.error.code !== \"number\")) {\n throw new TransformResultError();\n }\n if (result.ok && !isObject2(result.result)) {\n throw new TransformResultError();\n }\n return result;\n}\n__name(transformResult, \"transformResult\");\n\n// ../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/TRPCClientError-38f9a32a.mjs\nfunction isTRPCClientError(cause) {\n return cause instanceof TRPCClientError || /**\n * @deprecated\n * Delete in next major\n */\n cause instanceof Error && cause.name === \"TRPCClientError\";\n}\n__name(isTRPCClientError, \"isTRPCClientError\");\nfunction isTRPCErrorResponse(obj) {\n return isObject2(obj) && isObject2(obj.error) && typeof obj.error.code === \"number\" && typeof obj.error.message === \"string\";\n}\n__name(isTRPCErrorResponse, \"isTRPCErrorResponse\");\nvar _TRPCClientError = class _TRPCClientError extends Error {\n static from(_cause, opts = {}) {\n const cause = _cause;\n if (isTRPCClientError(cause)) {\n if (opts.meta) {\n cause.meta = {\n ...cause.meta,\n ...opts.meta\n };\n }\n return cause;\n }\n if (isTRPCErrorResponse(cause)) {\n return new _TRPCClientError(cause.error.message, {\n ...opts,\n result: cause\n });\n }\n if (!(cause instanceof Error)) {\n return new _TRPCClientError(\"Unknown error\", {\n ...opts,\n cause\n });\n }\n return new _TRPCClientError(cause.message, {\n ...opts,\n cause: getCauseFromUnknown(cause)\n });\n }\n constructor(message, opts) {\n const cause = opts?.cause;\n super(message, {\n cause\n });\n this.meta = opts?.meta;\n this.cause = cause;\n this.shape = opts?.result?.error;\n this.data = opts?.result?.error.data;\n this.name = \"TRPCClientError\";\n Object.setPrototypeOf(this, _TRPCClientError.prototype);\n }\n};\n__name(_TRPCClientError, \"TRPCClientError\");\nvar TRPCClientError = _TRPCClientError;\n\n// ../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/httpUtils-b9d0cb48.mjs\nvar isFunction = /* @__PURE__ */ __name((fn) => typeof fn === \"function\", \"isFunction\");\nfunction getFetch(customFetchImpl) {\n if (customFetchImpl) {\n return customFetchImpl;\n }\n if (typeof window !== \"undefined\" && isFunction(window.fetch)) {\n return window.fetch;\n }\n if (typeof globalThis !== \"undefined\" && isFunction(globalThis.fetch)) {\n return globalThis.fetch;\n }\n throw new Error(\"No fetch implementation found\");\n}\n__name(getFetch, \"getFetch\");\nfunction getAbortController(customAbortControllerImpl) {\n if (customAbortControllerImpl) {\n return customAbortControllerImpl;\n }\n if (typeof window !== \"undefined\" && window.AbortController) {\n return window.AbortController;\n }\n if (typeof globalThis !== \"undefined\" && globalThis.AbortController) {\n return globalThis.AbortController;\n }\n return null;\n}\n__name(getAbortController, \"getAbortController\");\nfunction resolveHTTPLinkOptions(opts) {\n return {\n url: opts.url.toString().replace(/\\/$/, \"\"),\n fetch: opts.fetch,\n AbortController: getAbortController(opts.AbortController)\n };\n}\n__name(resolveHTTPLinkOptions, \"resolveHTTPLinkOptions\");\nfunction arrayToDict(array) {\n const dict = {};\n for (let index = 0; index < array.length; index++) {\n const element = array[index];\n dict[index] = element;\n }\n return dict;\n}\n__name(arrayToDict, \"arrayToDict\");\nvar METHOD = {\n query: \"GET\",\n mutation: \"POST\"\n};\nfunction getInput(opts) {\n return \"input\" in opts ? opts.runtime.transformer.serialize(opts.input) : arrayToDict(opts.inputs.map((_input) => opts.runtime.transformer.serialize(_input)));\n}\n__name(getInput, \"getInput\");\nvar getUrl = /* @__PURE__ */ __name((opts) => {\n let url = opts.url + \"/\" + opts.path;\n const queryParts = [];\n if (\"inputs\" in opts) {\n queryParts.push(\"batch=1\");\n }\n if (opts.type === \"query\") {\n const input = getInput(opts);\n if (input !== void 0) {\n queryParts.push(`input=${encodeURIComponent(JSON.stringify(input))}`);\n }\n }\n if (queryParts.length) {\n url += \"?\" + queryParts.join(\"&\");\n }\n return url;\n}, \"getUrl\");\nvar getBody = /* @__PURE__ */ __name((opts) => {\n if (opts.type === \"query\") {\n return void 0;\n }\n const input = getInput(opts);\n return input !== void 0 ? JSON.stringify(input) : void 0;\n}, \"getBody\");\nvar jsonHttpRequester = /* @__PURE__ */ __name((opts) => {\n return httpRequest({\n ...opts,\n contentTypeHeader: \"application/json\",\n getUrl,\n getBody\n });\n}, \"jsonHttpRequester\");\nasync function fetchHTTPResponse(opts, ac) {\n const url = opts.getUrl(opts);\n const body = opts.getBody(opts);\n const { type } = opts;\n const resolvedHeaders = await opts.headers();\n if (type === \"subscription\") {\n throw new Error(\"Subscriptions should use wsLink\");\n }\n const headers = {\n ...opts.contentTypeHeader ? {\n \"content-type\": opts.contentTypeHeader\n } : {},\n ...opts.batchModeHeader ? {\n \"trpc-batch-mode\": opts.batchModeHeader\n } : {},\n ...resolvedHeaders\n };\n return getFetch(opts.fetch)(url, {\n method: METHOD[type],\n signal: ac?.signal,\n body,\n headers\n });\n}\n__name(fetchHTTPResponse, \"fetchHTTPResponse\");\nfunction httpRequest(opts) {\n const ac = opts.AbortController ? new opts.AbortController() : null;\n const meta = {};\n let done = false;\n const promise = new Promise((resolve, reject) => {\n fetchHTTPResponse(opts, ac).then((_res) => {\n meta.response = _res;\n done = true;\n return _res.json();\n }).then((json) => {\n meta.responseJSON = json;\n resolve({\n json,\n meta\n });\n }).catch((err) => {\n done = true;\n reject(TRPCClientError.from(err, {\n meta\n }));\n });\n });\n const cancel = /* @__PURE__ */ __name(() => {\n if (!done) {\n ac?.abort();\n }\n }, \"cancel\");\n return {\n promise,\n cancel\n };\n}\n__name(httpRequest, \"httpRequest\");\n\n// ../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/httpBatchLink-d0f9eac9.mjs\nvar throwFatalError = /* @__PURE__ */ __name(() => {\n throw new Error(\"Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new\");\n}, \"throwFatalError\");\nfunction dataLoader(batchLoader) {\n let pendingItems = null;\n let dispatchTimer = null;\n const destroyTimerAndPendingItems = /* @__PURE__ */ __name(() => {\n clearTimeout(dispatchTimer);\n dispatchTimer = null;\n pendingItems = null;\n }, \"destroyTimerAndPendingItems\");\n function groupItems(items) {\n const groupedItems = [\n []\n ];\n let index = 0;\n while (true) {\n const item = items[index];\n if (!item) {\n break;\n }\n const lastGroup = groupedItems[groupedItems.length - 1];\n if (item.aborted) {\n item.reject?.(new Error(\"Aborted\"));\n index++;\n continue;\n }\n const isValid = batchLoader.validate(lastGroup.concat(item).map((it) => it.key));\n if (isValid) {\n lastGroup.push(item);\n index++;\n continue;\n }\n if (lastGroup.length === 0) {\n item.reject?.(new Error(\"Input is too big for a single dispatch\"));\n index++;\n continue;\n }\n groupedItems.push([]);\n }\n return groupedItems;\n }\n __name(groupItems, \"groupItems\");\n function dispatch() {\n const groupedItems = groupItems(pendingItems);\n destroyTimerAndPendingItems();\n for (const items of groupedItems) {\n if (!items.length) {\n continue;\n }\n const batch = {\n items,\n cancel: throwFatalError\n };\n for (const item of items) {\n item.batch = batch;\n }\n const unitResolver = /* @__PURE__ */ __name((index, value) => {\n const item = batch.items[index];\n item.resolve?.(value);\n item.batch = null;\n item.reject = null;\n item.resolve = null;\n }, \"unitResolver\");\n const { promise, cancel } = batchLoader.fetch(batch.items.map((_item) => _item.key), unitResolver);\n batch.cancel = cancel;\n promise.then((result) => {\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n unitResolver(i, value);\n }\n for (const item of batch.items) {\n item.reject?.(new Error(\"Missing result\"));\n item.batch = null;\n }\n }).catch((cause) => {\n for (const item of batch.items) {\n item.reject?.(cause);\n item.batch = null;\n }\n });\n }\n }\n __name(dispatch, \"dispatch\");\n function load(key) {\n const item = {\n aborted: false,\n key,\n batch: null,\n resolve: throwFatalError,\n reject: throwFatalError\n };\n const promise = new Promise((resolve, reject) => {\n item.reject = reject;\n item.resolve = resolve;\n if (!pendingItems) {\n pendingItems = [];\n }\n pendingItems.push(item);\n });\n if (!dispatchTimer) {\n dispatchTimer = setTimeout(dispatch);\n }\n const cancel = /* @__PURE__ */ __name(() => {\n item.aborted = true;\n if (item.batch?.items.every((item2) => item2.aborted)) {\n item.batch.cancel();\n item.batch = null;\n }\n }, \"cancel\");\n return {\n promise,\n cancel\n };\n }\n __name(load, \"load\");\n return {\n load\n };\n}\n__name(dataLoader, \"dataLoader\");\nfunction createHTTPBatchLink(requester) {\n return /* @__PURE__ */ __name(function httpBatchLink2(opts) {\n const resolvedOpts = resolveHTTPLinkOptions(opts);\n const maxURLLength = opts.maxURLLength ?? Infinity;\n return (runtime) => {\n const batchLoader = /* @__PURE__ */ __name((type) => {\n const validate = /* @__PURE__ */ __name((batchOps) => {\n if (maxURLLength === Infinity) {\n return true;\n }\n const path = batchOps.map((op) => op.path).join(\",\");\n const inputs = batchOps.map((op) => op.input);\n const url = getUrl({\n ...resolvedOpts,\n runtime,\n type,\n path,\n inputs\n });\n return url.length <= maxURLLength;\n }, \"validate\");\n const fetch = requester({\n ...resolvedOpts,\n runtime,\n type,\n opts\n });\n return {\n validate,\n fetch\n };\n }, \"batchLoader\");\n const query = dataLoader(batchLoader(\"query\"));\n const mutation = dataLoader(batchLoader(\"mutation\"));\n const subscription = dataLoader(batchLoader(\"subscription\"));\n const loaders = {\n query,\n subscription,\n mutation\n };\n return ({ op }) => {\n return observable((observer) => {\n const loader = loaders[op.type];\n const { promise, cancel } = loader.load(op);\n let _res = void 0;\n promise.then((res) => {\n _res = res;\n const transformed = transformResult(res.json, runtime);\n if (!transformed.ok) {\n observer.error(TRPCClientError.from(transformed.error, {\n meta: res.meta\n }));\n return;\n }\n observer.next({\n context: res.meta,\n result: transformed.result\n });\n observer.complete();\n }).catch((err) => {\n observer.error(TRPCClientError.from(err, {\n meta: _res?.meta\n }));\n });\n return () => {\n cancel();\n };\n });\n };\n };\n }, \"httpBatchLink\");\n}\n__name(createHTTPBatchLink, \"createHTTPBatchLink\");\nvar batchRequester = /* @__PURE__ */ __name((requesterOpts) => {\n return (batchOps) => {\n const path = batchOps.map((op) => op.path).join(\",\");\n const inputs = batchOps.map((op) => op.input);\n const { promise, cancel } = jsonHttpRequester({\n ...requesterOpts,\n path,\n inputs,\n headers() {\n if (!requesterOpts.opts.headers) {\n return {};\n }\n if (typeof requesterOpts.opts.headers === \"function\") {\n return requesterOpts.opts.headers({\n opList: batchOps\n });\n }\n return requesterOpts.opts.headers;\n }\n });\n return {\n promise: promise.then((res) => {\n const resJSON = Array.isArray(res.json) ? res.json : batchOps.map(() => res.json);\n const result = resJSON.map((item) => ({\n meta: res.meta,\n json: item\n }));\n return result;\n }),\n cancel\n };\n };\n}, \"batchRequester\");\nvar httpBatchLink = createHTTPBatchLink(batchRequester);\n\n// ../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/links/httpLink.mjs\nfunction httpLinkFactory(factoryOpts) {\n return (opts) => {\n const resolvedOpts = resolveHTTPLinkOptions(opts);\n return (runtime) => ({ op }) => observable((observer) => {\n const { path, input, type } = op;\n const { promise, cancel } = factoryOpts.requester({\n ...resolvedOpts,\n runtime,\n type,\n path,\n input,\n headers() {\n if (!opts.headers) {\n return {};\n }\n if (typeof opts.headers === \"function\") {\n return opts.headers({\n op\n });\n }\n return opts.headers;\n }\n });\n let meta = void 0;\n promise.then((res) => {\n meta = res.meta;\n const transformed = transformResult(res.json, runtime);\n if (!transformed.ok) {\n observer.error(TRPCClientError.from(transformed.error, {\n meta\n }));\n return;\n }\n observer.next({\n context: res.meta,\n result: transformed.result\n });\n observer.complete();\n }).catch((cause) => {\n observer.error(TRPCClientError.from(cause, {\n meta\n }));\n });\n return () => {\n cancel();\n };\n });\n };\n}\n__name(httpLinkFactory, \"httpLinkFactory\");\n\n// ../../node_modules/.pnpm/@trpc+client@10.45.2_@trpc+server@10.45.2/node_modules/@trpc/client/dist/index.mjs\nvar _TRPCUntypedClient = class _TRPCUntypedClient {\n $request({ type, input, path, context = {} }) {\n const chain$ = createChain({\n links: this.links,\n op: {\n id: ++this.requestId,\n type,\n path,\n input,\n context\n }\n });\n return chain$.pipe(share());\n }\n requestAsPromise(opts) {\n const req$ = this.$request(opts);\n const { promise, abort } = observableToPromise(req$);\n const abortablePromise = new Promise((resolve, reject) => {\n opts.signal?.addEventListener(\"abort\", abort);\n promise.then((envelope) => {\n resolve(envelope.result.data);\n }).catch((err) => {\n reject(TRPCClientError.from(err));\n });\n });\n return abortablePromise;\n }\n query(path, input, opts) {\n return this.requestAsPromise({\n type: \"query\",\n path,\n input,\n context: opts?.context,\n signal: opts?.signal\n });\n }\n mutation(path, input, opts) {\n return this.requestAsPromise({\n type: \"mutation\",\n path,\n input,\n context: opts?.context,\n signal: opts?.signal\n });\n }\n subscription(path, input, opts) {\n const observable$ = this.$request({\n type: \"subscription\",\n path,\n input,\n context: opts?.context\n });\n return observable$.subscribe({\n next(envelope) {\n if (envelope.result.type === \"started\") {\n opts.onStarted?.();\n } else if (envelope.result.type === \"stopped\") {\n opts.onStopped?.();\n } else {\n opts.onData?.(envelope.result.data);\n }\n },\n error(err) {\n opts.onError?.(err);\n },\n complete() {\n opts.onComplete?.();\n }\n });\n }\n constructor(opts) {\n this.requestId = 0;\n const combinedTransformer = (() => {\n const transformer = opts.transformer;\n if (!transformer) {\n return {\n input: {\n serialize: (data) => data,\n deserialize: (data) => data\n },\n output: {\n serialize: (data) => data,\n deserialize: (data) => data\n }\n };\n }\n if (\"input\" in transformer) {\n return opts.transformer;\n }\n return {\n input: transformer,\n output: transformer\n };\n })();\n this.runtime = {\n transformer: {\n serialize: (data) => combinedTransformer.input.serialize(data),\n deserialize: (data) => combinedTransformer.output.deserialize(data)\n },\n combinedTransformer\n };\n this.links = opts.links.map((link) => link(this.runtime));\n }\n};\n__name(_TRPCUntypedClient, \"TRPCUntypedClient\");\nvar TRPCUntypedClient = _TRPCUntypedClient;\nvar clientCallTypeMap = {\n query: \"query\",\n mutate: \"mutation\",\n subscribe: \"subscription\"\n};\nvar clientCallTypeToProcedureType = /* @__PURE__ */ __name((clientCallType) => {\n return clientCallTypeMap[clientCallType];\n}, \"clientCallTypeToProcedureType\");\nfunction createTRPCClientProxy(client) {\n return createFlatProxy((key) => {\n if (client.hasOwnProperty(key)) {\n return client[key];\n }\n if (key === \"__untypedClient\") {\n return client;\n }\n return createRecursiveProxy(({ path, args }) => {\n const pathCopy = [\n key,\n ...path\n ];\n const procedureType = clientCallTypeToProcedureType(pathCopy.pop());\n const fullPath = pathCopy.join(\".\");\n return client[procedureType](fullPath, ...args);\n });\n });\n}\n__name(createTRPCClientProxy, \"createTRPCClientProxy\");\nfunction createTRPCProxyClient(opts) {\n const client = new TRPCUntypedClient(opts);\n const proxy = createTRPCClientProxy(client);\n return proxy;\n}\n__name(createTRPCProxyClient, \"createTRPCProxyClient\");\nfunction getTextDecoder(customTextDecoder) {\n if (customTextDecoder) {\n return customTextDecoder;\n }\n if (typeof window !== \"undefined\" && window.TextDecoder) {\n return new window.TextDecoder();\n }\n if (typeof globalThis !== \"undefined\" && globalThis.TextDecoder) {\n return new globalThis.TextDecoder();\n }\n throw new Error(\"No TextDecoder implementation found\");\n}\n__name(getTextDecoder, \"getTextDecoder\");\nasync function parseJSONStream(opts) {\n const parse2 = opts.parse ?? JSON.parse;\n const onLine = /* @__PURE__ */ __name((line) => {\n if (opts.signal?.aborted)\n return;\n if (!line || line === \"}\") {\n return;\n }\n const indexOfColon = line.indexOf(\":\");\n const indexAsStr = line.substring(2, indexOfColon - 1);\n const text = line.substring(indexOfColon + 1);\n opts.onSingle(Number(indexAsStr), parse2(text));\n }, \"onLine\");\n await readLines(opts.readableStream, onLine, opts.textDecoder);\n}\n__name(parseJSONStream, \"parseJSONStream\");\nasync function readLines(readableStream, onLine, textDecoder) {\n let partOfLine = \"\";\n const onChunk = /* @__PURE__ */ __name((chunk) => {\n const chunkText = textDecoder.decode(chunk);\n const chunkLines = chunkText.split(\"\\n\");\n if (chunkLines.length === 1) {\n partOfLine += chunkLines[0];\n } else if (chunkLines.length > 1) {\n onLine(partOfLine + chunkLines[0]);\n for (let i = 1; i < chunkLines.length - 1; i++) {\n onLine(chunkLines[i]);\n }\n partOfLine = chunkLines[chunkLines.length - 1];\n }\n }, \"onChunk\");\n if (\"getReader\" in readableStream) {\n await readStandardChunks(readableStream, onChunk);\n } else {\n await readNodeChunks(readableStream, onChunk);\n }\n onLine(partOfLine);\n}\n__name(readLines, \"readLines\");\nfunction readNodeChunks(stream, onChunk) {\n return new Promise((resolve) => {\n stream.on(\"data\", onChunk);\n stream.on(\"end\", resolve);\n });\n}\n__name(readNodeChunks, \"readNodeChunks\");\nasync function readStandardChunks(stream, onChunk) {\n const reader = stream.getReader();\n let readResult = await reader.read();\n while (!readResult.done) {\n onChunk(readResult.value);\n readResult = await reader.read();\n }\n}\n__name(readStandardChunks, \"readStandardChunks\");\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/double-indexed-kv.js\nvar DoubleIndexedKV = (\n /** @class */\n function() {\n function DoubleIndexedKV2() {\n this.keyToValue = /* @__PURE__ */ new Map();\n this.valueToKey = /* @__PURE__ */ new Map();\n }\n __name(DoubleIndexedKV2, \"DoubleIndexedKV\");\n DoubleIndexedKV2.prototype.set = function(key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n };\n DoubleIndexedKV2.prototype.getByKey = function(key) {\n return this.keyToValue.get(key);\n };\n DoubleIndexedKV2.prototype.getByValue = function(value) {\n return this.valueToKey.get(value);\n };\n DoubleIndexedKV2.prototype.clear = function() {\n this.keyToValue.clear();\n this.valueToKey.clear();\n };\n return DoubleIndexedKV2;\n }()\n);\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/registry.js\nvar Registry = (\n /** @class */\n function() {\n function Registry2(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n __name(Registry2, \"Registry\");\n Registry2.prototype.register = function(value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n };\n Registry2.prototype.clear = function() {\n this.kv.clear();\n };\n Registry2.prototype.getIdentifier = function(value) {\n return this.kv.getByValue(value);\n };\n Registry2.prototype.getValue = function(identifier) {\n return this.kv.getByKey(identifier);\n };\n return Registry2;\n }()\n);\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/class-registry.js\nvar __extends = /* @__PURE__ */ function() {\n var extendStatics = /* @__PURE__ */ __name(function(d, b) {\n extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function(d2, b2) {\n d2.__proto__ = b2;\n } || function(d2, b2) {\n for (var p in b2)\n if (Object.prototype.hasOwnProperty.call(b2, p))\n d2[p] = b2[p];\n };\n return extendStatics(d, b);\n }, \"extendStatics\");\n return function(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() {\n this.constructor = d;\n }\n __name(__, \"__\");\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\nvar ClassRegistry = (\n /** @class */\n function(_super) {\n __extends(ClassRegistry2, _super);\n function ClassRegistry2() {\n var _this = _super.call(this, function(c) {\n return c.name;\n }) || this;\n _this.classToAllowedProps = /* @__PURE__ */ new Map();\n return _this;\n }\n __name(ClassRegistry2, \"ClassRegistry\");\n ClassRegistry2.prototype.register = function(value, options) {\n if (typeof options === \"object\") {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n _super.prototype.register.call(this, value, options.identifier);\n } else {\n _super.prototype.register.call(this, value, options);\n }\n };\n ClassRegistry2.prototype.getAllowedProps = function(value) {\n return this.classToAllowedProps.get(value);\n };\n return ClassRegistry2;\n }(Registry)\n);\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/util.js\nvar __read = function(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m)\n return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n } catch (error) {\n e = {\n error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"]))\n m.call(i);\n } finally {\n if (e)\n throw e.error;\n }\n }\n return ar;\n};\nfunction valuesOfObj(record) {\n if (\"values\" in Object) {\n return Object.values(record);\n }\n var values = [];\n for (var key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\n__name(valuesOfObj, \"valuesOfObj\");\nfunction find(record, predicate) {\n var values = valuesOfObj(record);\n if (\"find\" in values) {\n return values.find(predicate);\n }\n var valuesNotNever = values;\n for (var i = 0; i < valuesNotNever.length; i++) {\n var value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return void 0;\n}\n__name(find, \"find\");\nfunction forEach(record, run) {\n Object.entries(record).forEach(function(_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n return run(value, key);\n });\n}\n__name(forEach, \"forEach\");\nfunction includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\n__name(includes, \"includes\");\nfunction findArr(record, predicate) {\n for (var i = 0; i < record.length; i++) {\n var value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return void 0;\n}\n__name(findArr, \"findArr\");\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/custom-transformer-registry.js\nvar CustomTransformerRegistry = (\n /** @class */\n function() {\n function CustomTransformerRegistry2() {\n this.transfomers = {};\n }\n __name(CustomTransformerRegistry2, \"CustomTransformerRegistry\");\n CustomTransformerRegistry2.prototype.register = function(transformer) {\n this.transfomers[transformer.name] = transformer;\n };\n CustomTransformerRegistry2.prototype.findApplicable = function(v) {\n return find(this.transfomers, function(transformer) {\n return transformer.isApplicable(v);\n });\n };\n CustomTransformerRegistry2.prototype.findByName = function(name) {\n return this.transfomers[name];\n };\n return CustomTransformerRegistry2;\n }()\n);\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/is.js\nvar getType = /* @__PURE__ */ __name(function(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}, \"getType\");\nvar isUndefined = /* @__PURE__ */ __name(function(payload) {\n return typeof payload === \"undefined\";\n}, \"isUndefined\");\nvar isNull = /* @__PURE__ */ __name(function(payload) {\n return payload === null;\n}, \"isNull\");\nvar isPlainObject = /* @__PURE__ */ __name(function(payload) {\n if (typeof payload !== \"object\" || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return Object.getPrototypeOf(payload) === Object.prototype;\n}, \"isPlainObject\");\nvar isEmptyObject = /* @__PURE__ */ __name(function(payload) {\n return isPlainObject(payload) && Object.keys(payload).length === 0;\n}, \"isEmptyObject\");\nvar isArray = /* @__PURE__ */ __name(function(payload) {\n return Array.isArray(payload);\n}, \"isArray\");\nvar isString = /* @__PURE__ */ __name(function(payload) {\n return typeof payload === \"string\";\n}, \"isString\");\nvar isNumber = /* @__PURE__ */ __name(function(payload) {\n return typeof payload === \"number\" && !isNaN(payload);\n}, \"isNumber\");\nvar isBoolean = /* @__PURE__ */ __name(function(payload) {\n return typeof payload === \"boolean\";\n}, \"isBoolean\");\nvar isRegExp = /* @__PURE__ */ __name(function(payload) {\n return payload instanceof RegExp;\n}, \"isRegExp\");\nvar isMap = /* @__PURE__ */ __name(function(payload) {\n return payload instanceof Map;\n}, \"isMap\");\nvar isSet = /* @__PURE__ */ __name(function(payload) {\n return payload instanceof Set;\n}, \"isSet\");\nvar isSymbol = /* @__PURE__ */ __name(function(payload) {\n return getType(payload) === \"Symbol\";\n}, \"isSymbol\");\nvar isDate = /* @__PURE__ */ __name(function(payload) {\n return payload instanceof Date && !isNaN(payload.valueOf());\n}, \"isDate\");\nvar isError = /* @__PURE__ */ __name(function(payload) {\n return payload instanceof Error;\n}, \"isError\");\nvar isNaNValue = /* @__PURE__ */ __name(function(payload) {\n return typeof payload === \"number\" && isNaN(payload);\n}, \"isNaNValue\");\nvar isPrimitive = /* @__PURE__ */ __name(function(payload) {\n return isBoolean(payload) || isNull(payload) || isUndefined(payload) || isNumber(payload) || isString(payload) || isSymbol(payload);\n}, \"isPrimitive\");\nvar isBigint = /* @__PURE__ */ __name(function(payload) {\n return typeof payload === \"bigint\";\n}, \"isBigint\");\nvar isInfinite = /* @__PURE__ */ __name(function(payload) {\n return payload === Infinity || payload === -Infinity;\n}, \"isInfinite\");\nvar isTypedArray = /* @__PURE__ */ __name(function(payload) {\n return ArrayBuffer.isView(payload) && !(payload instanceof DataView);\n}, \"isTypedArray\");\nvar isURL = /* @__PURE__ */ __name(function(payload) {\n return payload instanceof URL;\n}, \"isURL\");\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/pathstringifier.js\nvar escapeKey = /* @__PURE__ */ __name(function(key) {\n return key.replace(/\\./g, \"\\\\.\");\n}, \"escapeKey\");\nvar stringifyPath = /* @__PURE__ */ __name(function(path) {\n return path.map(String).map(escapeKey).join(\".\");\n}, \"stringifyPath\");\nvar parsePath = /* @__PURE__ */ __name(function(string) {\n var result = [];\n var segment = \"\";\n for (var i = 0; i < string.length; i++) {\n var char = string.charAt(i);\n var isEscapedDot = char === \"\\\\\" && string.charAt(i + 1) === \".\";\n if (isEscapedDot) {\n segment += \".\";\n i++;\n continue;\n }\n var isEndOfSegment = char === \".\";\n if (isEndOfSegment) {\n result.push(segment);\n segment = \"\";\n continue;\n }\n segment += char;\n }\n var lastSegment = segment;\n result.push(lastSegment);\n return result;\n}, \"parsePath\");\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/transformer.js\nvar __assign = function() {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read2 = function(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m)\n return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n } catch (error) {\n e = {\n error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"]))\n m.call(i);\n } finally {\n if (e)\n throw e.error;\n }\n }\n return ar;\n};\nvar __spreadArray = function(to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform\n };\n}\n__name(simpleTransformation, \"simpleTransformation\");\nvar simpleRules = [\n simpleTransformation(isUndefined, \"undefined\", function() {\n return null;\n }, function() {\n return void 0;\n }),\n simpleTransformation(isBigint, \"bigint\", function(v) {\n return v.toString();\n }, function(v) {\n if (typeof BigInt !== \"undefined\") {\n return BigInt(v);\n }\n console.error(\"Please add a BigInt polyfill.\");\n return v;\n }),\n simpleTransformation(isDate, \"Date\", function(v) {\n return v.toISOString();\n }, function(v) {\n return new Date(v);\n }),\n simpleTransformation(isError, \"Error\", function(v, superJson) {\n var baseError = {\n name: v.name,\n message: v.message\n };\n superJson.allowedErrorProps.forEach(function(prop) {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, function(v, superJson) {\n var e = new Error(v.message);\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(function(prop) {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, \"regexp\", function(v) {\n return \"\" + v;\n }, function(regex) {\n var body = regex.slice(1, regex.lastIndexOf(\"/\"));\n var flags = regex.slice(regex.lastIndexOf(\"/\") + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(\n isSet,\n \"set\",\n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n function(v) {\n return __spreadArray([], __read2(v.values()));\n },\n function(v) {\n return new Set(v);\n }\n ),\n simpleTransformation(isMap, \"map\", function(v) {\n return __spreadArray([], __read2(v.entries()));\n }, function(v) {\n return new Map(v);\n }),\n simpleTransformation(function(v) {\n return isNaNValue(v) || isInfinite(v);\n }, \"number\", function(v) {\n if (isNaNValue(v)) {\n return \"NaN\";\n }\n if (v > 0) {\n return \"Infinity\";\n } else {\n return \"-Infinity\";\n }\n }, Number),\n simpleTransformation(function(v) {\n return v === 0 && 1 / v === -Infinity;\n }, \"number\", function() {\n return \"-0\";\n }, Number),\n simpleTransformation(isURL, \"URL\", function(v) {\n return v.toString();\n }, function(v) {\n return new URL(v);\n })\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform\n };\n}\n__name(compositeTransformation, \"compositeTransformation\");\nvar symbolRule = compositeTransformation(function(s, superJson) {\n if (isSymbol(s)) {\n var isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, function(s, superJson) {\n var identifier = superJson.symbolRegistry.getIdentifier(s);\n return [\n \"symbol\",\n identifier\n ];\n}, function(v) {\n return v.description;\n}, function(_, a, superJson) {\n var value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error(\"Trying to deserialize unknown symbol\");\n }\n return value;\n});\nvar constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray\n].reduce(function(obj, ctor) {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nvar typedArrayRule = compositeTransformation(isTypedArray, function(v) {\n return [\n \"typed-array\",\n v.constructor.name\n ];\n}, function(v) {\n return __spreadArray([], __read2(v));\n}, function(v, a) {\n var ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error(\"Trying to deserialize unknown typed array\");\n }\n return new ctor(v);\n});\nfunction isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass === null || potentialClass === void 0 ? void 0 : potentialClass.constructor) {\n var isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\n__name(isInstanceOfRegisteredClass, \"isInstanceOfRegisteredClass\");\nvar classRule = compositeTransformation(isInstanceOfRegisteredClass, function(clazz, superJson) {\n var identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return [\n \"class\",\n identifier\n ];\n}, function(clazz, superJson) {\n var allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return __assign({}, clazz);\n }\n var result = {};\n allowedProps.forEach(function(prop) {\n result[prop] = clazz[prop];\n });\n return result;\n}, function(v, a, superJson) {\n var clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error(\"Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564\");\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nvar customRule = compositeTransformation(function(value, superJson) {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, function(value, superJson) {\n var transformer = superJson.customTransformerRegistry.findApplicable(value);\n return [\n \"custom\",\n transformer.name\n ];\n}, function(value, superJson) {\n var transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, function(v, a, superJson) {\n var transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error(\"Trying to deserialize unknown custom value\");\n }\n return transformer.deserialize(v);\n});\nvar compositeRules = [\n classRule,\n symbolRule,\n customRule,\n typedArrayRule\n];\nvar transformValue = /* @__PURE__ */ __name(function(value, superJson) {\n var applicableCompositeRule = findArr(compositeRules, function(rule) {\n return rule.isApplicable(value, superJson);\n });\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson)\n };\n }\n var applicableSimpleRule = findArr(simpleRules, function(rule) {\n return rule.isApplicable(value, superJson);\n });\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation\n };\n }\n return void 0;\n}, \"transformValue\");\nvar simpleRulesByAnnotation = {};\nsimpleRules.forEach(function(rule) {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nvar untransformValue = /* @__PURE__ */ __name(function(json, type, superJson) {\n if (isArray(type)) {\n switch (type[0]) {\n case \"symbol\":\n return symbolRule.untransform(json, type, superJson);\n case \"class\":\n return classRule.untransform(json, type, superJson);\n case \"custom\":\n return customRule.untransform(json, type, superJson);\n case \"typed-array\":\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error(\"Unknown transformation: \" + type);\n }\n } else {\n var transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error(\"Unknown transformation: \" + type);\n }\n return transformation.untransform(json, superJson);\n }\n}, \"untransformValue\");\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/accessDeep.js\nvar getNthKey = /* @__PURE__ */ __name(function(value, n) {\n var keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n}, \"getNthKey\");\nfunction validatePath(path) {\n if (includes(path, \"__proto__\")) {\n throw new Error(\"__proto__ is not allowed as a property\");\n }\n if (includes(path, \"prototype\")) {\n throw new Error(\"prototype is not allowed as a property\");\n }\n if (includes(path, \"constructor\")) {\n throw new Error(\"constructor is not allowed as a property\");\n }\n}\n__name(validatePath, \"validatePath\");\nvar getDeep = /* @__PURE__ */ __name(function(object, path) {\n validatePath(path);\n for (var i = 0; i < path.length; i++) {\n var key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n } else if (isMap(object)) {\n var row = +key;\n var type = +path[++i] === 0 ? \"key\" : \"value\";\n var keyOfRow = getNthKey(object, row);\n switch (type) {\n case \"key\":\n object = keyOfRow;\n break;\n case \"value\":\n object = object.get(keyOfRow);\n break;\n }\n } else {\n object = object[key];\n }\n }\n return object;\n}, \"getDeep\");\nvar setDeep = /* @__PURE__ */ __name(function(object, path, mapper) {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n var parent = object;\n for (var i = 0; i < path.length - 1; i++) {\n var key = path[i];\n if (isArray(parent)) {\n var index = +key;\n parent = parent[index];\n } else if (isPlainObject(parent)) {\n parent = parent[key];\n } else if (isSet(parent)) {\n var row = +key;\n parent = getNthKey(parent, row);\n } else if (isMap(parent)) {\n var isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n var row = +key;\n var type = +path[++i] === 0 ? \"key\" : \"value\";\n var keyOfRow = getNthKey(parent, row);\n switch (type) {\n case \"key\":\n parent = keyOfRow;\n break;\n case \"value\":\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n var lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n } else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n var oldValue = getNthKey(parent, +lastKey);\n var newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent[\"delete\"](oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n var row = +path[path.length - 2];\n var keyToRow = getNthKey(parent, row);\n var type = +lastKey === 0 ? \"key\" : \"value\";\n switch (type) {\n case \"key\": {\n var newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent[\"delete\"](keyToRow);\n }\n break;\n }\n case \"value\": {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n}, \"setDeep\");\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/plainer.js\nvar __read3 = function(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m)\n return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n } catch (error) {\n e = {\n error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"]))\n m.call(i);\n } finally {\n if (e)\n throw e.error;\n }\n }\n return ar;\n};\nvar __spreadArray2 = function(to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nfunction traverse(tree, walker2, origin) {\n if (origin === void 0) {\n origin = [];\n }\n if (!tree) {\n return;\n }\n if (!isArray(tree)) {\n forEach(tree, function(subtree, key) {\n return traverse(subtree, walker2, __spreadArray2(__spreadArray2([], __read3(origin)), __read3(parsePath(key))));\n });\n return;\n }\n var _a = __read3(tree, 2), nodeValue = _a[0], children = _a[1];\n if (children) {\n forEach(children, function(child, key) {\n traverse(child, walker2, __spreadArray2(__spreadArray2([], __read3(origin)), __read3(parsePath(key))));\n });\n }\n walker2(nodeValue, origin);\n}\n__name(traverse, \"traverse\");\nfunction applyValueAnnotations(plain, annotations, superJson) {\n traverse(annotations, function(type, path) {\n plain = setDeep(plain, path, function(v) {\n return untransformValue(v, type, superJson);\n });\n });\n return plain;\n}\n__name(applyValueAnnotations, \"applyValueAnnotations\");\nfunction applyReferentialEqualityAnnotations(plain, annotations) {\n function apply(identicalPaths, path) {\n var object = getDeep(plain, parsePath(path));\n identicalPaths.map(parsePath).forEach(function(identicalObjectPath) {\n plain = setDeep(plain, identicalObjectPath, function() {\n return object;\n });\n });\n }\n __name(apply, \"apply\");\n if (isArray(annotations)) {\n var _a = __read3(annotations, 2), root = _a[0], other = _a[1];\n root.forEach(function(identicalPath) {\n plain = setDeep(plain, parsePath(identicalPath), function() {\n return plain;\n });\n });\n if (other) {\n forEach(other, apply);\n }\n } else {\n forEach(annotations, apply);\n }\n return plain;\n}\n__name(applyReferentialEqualityAnnotations, \"applyReferentialEqualityAnnotations\");\nvar isDeep = /* @__PURE__ */ __name(function(object, superJson) {\n return isPlainObject(object) || isArray(object) || isMap(object) || isSet(object) || isInstanceOfRegisteredClass(object, superJson);\n}, \"isDeep\");\nfunction addIdentity(object, path, identities) {\n var existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n } else {\n identities.set(object, [\n path\n ]);\n }\n}\n__name(addIdentity, \"addIdentity\");\nfunction generateReferentialEqualityAnnotations(identitites, dedupe) {\n var result = {};\n var rootEqualityPaths = void 0;\n identitites.forEach(function(paths) {\n if (paths.length <= 1) {\n return;\n }\n if (!dedupe) {\n paths = paths.map(function(path) {\n return path.map(String);\n }).sort(function(a, b) {\n return a.length - b.length;\n });\n }\n var _a = __read3(paths), representativePath = _a[0], identicalPaths = _a.slice(1);\n if (representativePath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n } else {\n result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [\n rootEqualityPaths\n ];\n } else {\n return [\n rootEqualityPaths,\n result\n ];\n }\n } else {\n return isEmptyObject(result) ? void 0 : result;\n }\n}\n__name(generateReferentialEqualityAnnotations, \"generateReferentialEqualityAnnotations\");\nvar walker = /* @__PURE__ */ __name(function(object, identities, superJson, dedupe, path, objectsInThisPath, seenObjects) {\n var _a;\n if (path === void 0) {\n path = [];\n }\n if (objectsInThisPath === void 0) {\n objectsInThisPath = [];\n }\n if (seenObjects === void 0) {\n seenObjects = /* @__PURE__ */ new Map();\n }\n var primitive = isPrimitive(object);\n if (!primitive) {\n addIdentity(object, path, identities);\n var seen = seenObjects.get(object);\n if (seen) {\n return dedupe ? {\n transformedValue: null\n } : seen;\n }\n }\n if (!isDeep(object, superJson)) {\n var transformed_1 = transformValue(object, superJson);\n var result_1 = transformed_1 ? {\n transformedValue: transformed_1.value,\n annotations: [\n transformed_1.type\n ]\n } : {\n transformedValue: object\n };\n if (!primitive) {\n seenObjects.set(object, result_1);\n }\n return result_1;\n }\n if (includes(objectsInThisPath, object)) {\n return {\n transformedValue: null\n };\n }\n var transformationResult = transformValue(object, superJson);\n var transformed = (_a = transformationResult === null || transformationResult === void 0 ? void 0 : transformationResult.value) !== null && _a !== void 0 ? _a : object;\n var transformedValue = isArray(transformed) ? [] : {};\n var innerAnnotations = {};\n forEach(transformed, function(value, index) {\n var recursiveResult = walker(value, identities, superJson, dedupe, __spreadArray2(__spreadArray2([], __read3(path)), [\n index\n ]), __spreadArray2(__spreadArray2([], __read3(objectsInThisPath)), [\n object\n ]), seenObjects);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[index] = recursiveResult.annotations;\n } else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, function(tree, key) {\n innerAnnotations[escapeKey(index) + \".\" + key] = tree;\n });\n }\n });\n var result = isEmptyObject(innerAnnotations) ? {\n transformedValue,\n annotations: !!transformationResult ? [\n transformationResult.type\n ] : void 0\n } : {\n transformedValue,\n annotations: !!transformationResult ? [\n transformationResult.type,\n innerAnnotations\n ] : innerAnnotations\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n}, \"walker\");\n\n// ../../node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.js\nfunction getType2(payload) {\n return Object.prototype.toString.call(payload).slice(8, -1);\n}\n__name(getType2, \"getType\");\nfunction isArray2(payload) {\n return getType2(payload) === \"Array\";\n}\n__name(isArray2, \"isArray\");\nfunction isPlainObject2(payload) {\n if (getType2(payload) !== \"Object\")\n return false;\n const prototype = Object.getPrototypeOf(payload);\n return !!prototype && prototype.constructor === Object && prototype === Object.prototype;\n}\n__name(isPlainObject2, \"isPlainObject\");\nfunction isNull2(payload) {\n return getType2(payload) === \"Null\";\n}\n__name(isNull2, \"isNull\");\nfunction isOneOf(a, b, c, d, e) {\n return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);\n}\n__name(isOneOf, \"isOneOf\");\nfunction isUndefined2(payload) {\n return getType2(payload) === \"Undefined\";\n}\n__name(isUndefined2, \"isUndefined\");\n\n// ../../node_modules/.pnpm/copy-anything@3.0.5/node_modules/copy-anything/dist/index.js\nfunction assignProp(carry, key, newVal, originalObject, includeNonenumerable) {\n const propType = {}.propertyIsEnumerable.call(originalObject, key) ? \"enumerable\" : \"nonenumerable\";\n if (propType === \"enumerable\")\n carry[key] = newVal;\n if (includeNonenumerable && propType === \"nonenumerable\") {\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true\n });\n }\n}\n__name(assignProp, \"assignProp\");\nfunction copy(target, options = {}) {\n if (isArray2(target)) {\n return target.map((item) => copy(item, options));\n }\n if (!isPlainObject2(target)) {\n return target;\n }\n const props = Object.getOwnPropertyNames(target);\n const symbols = Object.getOwnPropertySymbols(target);\n return [\n ...props,\n ...symbols\n ].reduce((carry, key) => {\n if (isArray2(options.props) && !options.props.includes(key)) {\n return carry;\n }\n const val = target[key];\n const newVal = copy(val, options);\n assignProp(carry, key, newVal, target, options.nonenumerable);\n return carry;\n }, {});\n}\n__name(copy, \"copy\");\n\n// ../../node_modules/.pnpm/superjson@1.13.3/node_modules/superjson/dist/esm/index.js\nvar __assign2 = function() {\n __assign2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign2.apply(this, arguments);\n};\nvar __read4 = function(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m)\n return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done)\n ar.push(r.value);\n } catch (error) {\n e = {\n error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"]))\n m.call(i);\n } finally {\n if (e)\n throw e.error;\n }\n }\n return ar;\n};\nvar __spreadArray3 = function(to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar SuperJSON = (\n /** @class */\n function() {\n function SuperJSON2(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.dedupe, dedupe = _c === void 0 ? false : _c;\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(function(s) {\n var _a2;\n return (_a2 = s.description) !== null && _a2 !== void 0 ? _a2 : \"\";\n });\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n this.dedupe = dedupe;\n }\n __name(SuperJSON2, \"SuperJSON\");\n SuperJSON2.prototype.serialize = function(object) {\n var identities = /* @__PURE__ */ new Map();\n var output = walker(object, identities, this, this.dedupe);\n var res = {\n json: output.transformedValue\n };\n if (output.annotations) {\n res.meta = __assign2(__assign2({}, res.meta), {\n values: output.annotations\n });\n }\n var equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);\n if (equalityAnnotations) {\n res.meta = __assign2(__assign2({}, res.meta), {\n referentialEqualities: equalityAnnotations\n });\n }\n return res;\n };\n SuperJSON2.prototype.deserialize = function(payload) {\n var json = payload.json, meta = payload.meta;\n var result = copy(json);\n if (meta === null || meta === void 0 ? void 0 : meta.values) {\n result = applyValueAnnotations(result, meta.values, this);\n }\n if (meta === null || meta === void 0 ? void 0 : meta.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities);\n }\n return result;\n };\n SuperJSON2.prototype.stringify = function(object) {\n return JSON.stringify(this.serialize(object));\n };\n SuperJSON2.prototype.parse = function(string) {\n return this.deserialize(JSON.parse(string));\n };\n SuperJSON2.prototype.registerClass = function(v, options) {\n this.classRegistry.register(v, options);\n };\n SuperJSON2.prototype.registerSymbol = function(v, identifier) {\n this.symbolRegistry.register(v, identifier);\n };\n SuperJSON2.prototype.registerCustom = function(transformer, name) {\n this.customTransformerRegistry.register(__assign2({\n name\n }, transformer));\n };\n SuperJSON2.prototype.allowErrorProps = function() {\n var _a;\n var props = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n props[_i] = arguments[_i];\n }\n (_a = this.allowedErrorProps).push.apply(_a, __spreadArray3([], __read4(props)));\n };\n SuperJSON2.defaultInstance = new SuperJSON2();\n SuperJSON2.serialize = SuperJSON2.defaultInstance.serialize.bind(SuperJSON2.defaultInstance);\n SuperJSON2.deserialize = SuperJSON2.defaultInstance.deserialize.bind(SuperJSON2.defaultInstance);\n SuperJSON2.stringify = SuperJSON2.defaultInstance.stringify.bind(SuperJSON2.defaultInstance);\n SuperJSON2.parse = SuperJSON2.defaultInstance.parse.bind(SuperJSON2.defaultInstance);\n SuperJSON2.registerClass = SuperJSON2.defaultInstance.registerClass.bind(SuperJSON2.defaultInstance);\n SuperJSON2.registerSymbol = SuperJSON2.defaultInstance.registerSymbol.bind(SuperJSON2.defaultInstance);\n SuperJSON2.registerCustom = SuperJSON2.defaultInstance.registerCustom.bind(SuperJSON2.defaultInstance);\n SuperJSON2.allowErrorProps = SuperJSON2.defaultInstance.allowErrorProps.bind(SuperJSON2.defaultInstance);\n return SuperJSON2;\n }()\n);\nvar esm_default = SuperJSON;\nSuperJSON.serialize;\nSuperJSON.deserialize;\nSuperJSON.stringify;\nSuperJSON.parse;\nSuperJSON.registerClass;\nSuperJSON.registerCustom;\nSuperJSON.registerSymbol;\nSuperJSON.allowErrorProps;\n\n// ../shared/src/rpc/utils.ts\nvar validateSwapAmount = /* @__PURE__ */ __name((env, asset, amount) => {\n const minimumAmount = readChainAssetValue(env.ingressEgress.minimumDepositAmounts, asset);\n if (amount < minimumAmount) {\n return {\n success: false,\n reason: `expected amount is below minimum swap amount (${minimumAmount})`\n };\n }\n const maxAmount = readChainAssetValue(env.swapping.maximumSwapAmounts, asset);\n if (maxAmount != null && amount > maxAmount) {\n return {\n success: false,\n reason: `expected amount is above maximum swap amount (${maxAmount})`\n };\n }\n return {\n success: true\n };\n}, \"validateSwapAmount\");\n\n// ../shared/src/evm.ts\nvar assertIsEvmChain = /* @__PURE__ */ __name((chain) => {\n const evmChainId = getEvmChainId(chain, ChainflipNetworks.backspin);\n assert(evmChainId, `Chain ${chain} is not an evm chain`);\n}, \"assertIsEvmChain\");\nvar assertSignerIsConnectedToChain = /* @__PURE__ */ __name(async (opts, chain) => {\n if (opts.network === \"localnet\")\n return;\n assert(opts.signer.provider, \"Signer has no provider\");\n const sourceChainId = getEvmChainId(chain, opts.network);\n assert(sourceChainId, `Chain ${chain} has no evm chain id`);\n const { chainId: signerChainId } = await opts.signer.provider.getNetwork();\n assert(signerChainId === BigInt(sourceChainId), `Signer is connected to unexpected evm chain (expected: ${sourceChainId}, got: ${signerChainId})`);\n}, \"assertSignerIsConnectedToChain\");\n\n// ../shared/src/vault/executeSwap.ts\nvar encodeAddress = /* @__PURE__ */ __name((chain, address) => {\n if (chain === Chains.Polkadot)\n return u8aToHex(decodeAddress(dotAddress.parse(address)));\n if (chain === Chains.Bitcoin)\n return `0x${Buffer.from(address).toString(\"hex\")}`;\n if (chain === Chains.Ethereum || chain === Chains.Arbitrum)\n return address;\n throw new Error(`cannot encode address for chain ${chain}`);\n}, \"encodeAddress\");\nvar assertIsValidSwap = /* @__PURE__ */ __name((params) => {\n const internalSrcAsset = getInternalAsset({\n chain: params.srcChain,\n asset: params.srcAsset\n });\n const internalDestAsset = getInternalAsset({\n chain: params.destChain,\n asset: params.destAsset\n });\n assert(internalSrcAsset !== internalDestAsset, `source asset and destination asset cannot be the same`);\n}, \"assertIsValidSwap\");\nvar getVaultContract = /* @__PURE__ */ __name((chain, networkOpts) => {\n const vaultContractAddress = networkOpts.network === \"localnet\" ? networkOpts.vaultContractAddress : getVaultContractAddress(chain, networkOpts.network);\n return {\n vaultContract: Vault__factory.connect(vaultContractAddress, networkOpts.signer),\n vaultAddress: vaultContractAddress\n };\n}, \"getVaultContract\");\nvar getErc20Address = /* @__PURE__ */ __name((asset, networkOpts) => {\n const erc20Address = networkOpts.network === \"localnet\" ? networkOpts.srcTokenContractAddress : getTokenContractAddress(asset, networkOpts.network);\n assert(erc20Address !== void 0, `Missing ERC20 contract address for ${asset}`);\n return erc20Address;\n}, \"getErc20Address\");\nvar swapNative = /* @__PURE__ */ __name(async (params, networkOpts, txOpts) => {\n const internalDestAsset = getInternalAsset({\n chain: params.destChain,\n asset: params.destAsset\n });\n const { vaultContract: vault } = getVaultContract(params.srcChain, networkOpts);\n const transaction = await vault.xSwapNative(chainConstants[params.destChain].contractId, encodeAddress(params.destChain, params.destAddress), assetConstants[internalDestAsset].contractId, \"0x\", {\n value: params.amount,\n ...extractOverrides(txOpts)\n });\n return transaction.wait(txOpts.wait);\n}, \"swapNative\");\nvar swapToken = /* @__PURE__ */ __name(async (params, networkOpts, txOpts) => {\n const internalSrcAsset = getInternalAsset({\n chain: params.srcChain,\n asset: params.srcAsset\n });\n const internalDestAsset = getInternalAsset({\n chain: params.destChain,\n asset: params.destAsset\n });\n const { vaultContract: vault, vaultAddress } = getVaultContract(params.srcChain, networkOpts);\n const erc20Address = getErc20Address(internalSrcAsset, networkOpts);\n const { hasSufficientAllowance } = await checkAllowance(BigInt(params.amount), vaultAddress, erc20Address, networkOpts.signer);\n assert(hasSufficientAllowance, \"Swap amount exceeds allowance\");\n const transaction = await vault.xSwapToken(chainConstants[params.destChain].contractId, encodeAddress(params.destChain, params.destAddress), assetConstants[internalDestAsset].contractId, erc20Address, params.amount, \"0x\", extractOverrides(txOpts));\n return transaction.wait(txOpts.wait);\n}, \"swapToken\");\nvar callNative = /* @__PURE__ */ __name(async (params, networkOpts, txOpts) => {\n const internalDestAsset = getInternalAsset({\n chain: params.destChain,\n asset: params.destAsset\n });\n const { vaultContract: vault } = getVaultContract(params.srcChain, networkOpts);\n const transaction = await vault.xCallNative(chainConstants[params.destChain].contractId, encodeAddress(params.destChain, params.destAddress), assetConstants[internalDestAsset].contractId, params.ccmMetadata.message, params.ccmMetadata.gasBudget, \"0x\", {\n value: params.amount,\n ...extractOverrides(txOpts)\n });\n return transaction.wait(txOpts.wait);\n}, \"callNative\");\nvar callToken = /* @__PURE__ */ __name(async (params, networkOpts, txOpts) => {\n const internalSrcAsset = getInternalAsset({\n chain: params.srcChain,\n asset: params.srcAsset\n });\n const internalDestAsset = getInternalAsset({\n chain: params.destChain,\n asset: params.destAsset\n });\n const { vaultContract: vault, vaultAddress } = getVaultContract(params.srcChain, networkOpts);\n const erc20Address = getErc20Address(internalSrcAsset, networkOpts);\n const { hasSufficientAllowance } = await checkAllowance(BigInt(params.amount), vaultAddress, erc20Address, networkOpts.signer);\n assert(hasSufficientAllowance, \"Swap amount exceeds allowance\");\n const transaction = await vault.xCallToken(chainConstants[params.destChain].contractId, encodeAddress(params.destChain, params.destAddress), assetConstants[internalDestAsset].contractId, params.ccmMetadata.message, params.ccmMetadata.gasBudget, erc20Address, params.amount, \"0x\", extractOverrides(txOpts));\n return transaction.wait(txOpts.wait);\n}, \"callToken\");\nvar executeSwap = /* @__PURE__ */ __name(async ({ ccmMetadata: unvalidatedCcmMetadata, ...params }, networkOpts, txOpts) => {\n assertIsValidSwap(params);\n assertIsEvmChain(params.srcChain);\n assertValidAddress(params.destChain, params.destAddress, networkOpts.network);\n await assertSignerIsConnectedToChain(networkOpts, params.srcChain);\n if (unvalidatedCcmMetadata) {\n assertIsEvmChain(params.destChain);\n const ccmMetadata = ccmMetadataSchema.parse(unvalidatedCcmMetadata);\n return params.srcAsset === chainConstants[params.srcChain].gasAsset ? callNative({\n ...params,\n ccmMetadata\n }, networkOpts, txOpts) : callToken({\n ...params,\n ccmMetadata\n }, networkOpts, txOpts);\n }\n return params.srcAsset === chainConstants[params.srcChain].gasAsset ? swapNative(params, networkOpts, txOpts) : swapToken(params, networkOpts, txOpts);\n}, \"executeSwap\");\nvar executeSwap_default = executeSwap;\n\n// ../shared/src/vault/approval.ts\nvar checkVaultAllowance = /* @__PURE__ */ __name((params, networkOpts) => {\n const erc20Address = networkOpts.network === \"localnet\" ? networkOpts.srcTokenContractAddress : getTokenContractAddress(getInternalAsset({\n chain: params.srcChain,\n asset: params.srcAsset\n }), networkOpts.network);\n assert(erc20Address !== void 0, \"Missing ERC20 contract address\");\n const vaultContractAddress = networkOpts.network === \"localnet\" ? networkOpts.vaultContractAddress : getVaultContractAddress(params.srcChain, networkOpts.network);\n return checkAllowance(BigInt(params.amount), vaultContractAddress, erc20Address, networkOpts.signer);\n}, \"checkVaultAllowance\");\nvar approveVault = /* @__PURE__ */ __name(async (params, networkOpts, txOpts) => {\n await assertSignerIsConnectedToChain(networkOpts, params.srcChain);\n const { hasSufficientAllowance, erc20, allowance } = await checkVaultAllowance(params, networkOpts);\n if (hasSufficientAllowance)\n return null;\n const vaultContractAddress = networkOpts.network === \"localnet\" ? networkOpts.vaultContractAddress : getVaultContractAddress(params.srcChain, networkOpts.network);\n return approve(BigInt(params.amount), vaultContractAddress, erc20, allowance, txOpts);\n}, \"approveVault\");\n\n// src/swap/assets.ts\nvar isGasAsset = /* @__PURE__ */ __name((asset) => {\n const { chain } = assetConstants[asset];\n return assetConstants[asset].asset === chainConstants[chain].gasAsset;\n}, \"isGasAsset\");\nvar getAssetData = /* @__PURE__ */ __name((asset, network, env) => ({\n chainflipId: asset,\n asset: assetConstants[asset].asset,\n chain: assetConstants[asset].chain,\n contractAddress: !isGasAsset(asset) ? getTokenContractAddress(asset, network) : void 0,\n decimals: assetConstants[asset].decimals,\n name: assetConstants[asset].name,\n symbol: assetConstants[asset].asset,\n isMainnet: !isTestnet(network),\n minimumSwapAmount: readChainAssetValue(env.ingressEgress.minimumDepositAmounts, assetConstants[asset]).toString(),\n maximumSwapAmount: readChainAssetValue(env.swapping.maximumSwapAmounts, assetConstants[asset])?.toString() ?? null,\n minimumEgressAmount: readChainAssetValue(env.ingressEgress.minimumEgressAmounts, assetConstants[asset]).toString()\n}), \"getAssetData\");\n\n// src/swap/chains.ts\nvar getChainData = /* @__PURE__ */ __name((chain, network, env) => ({\n chain,\n name: chain,\n evmChainId: getEvmChainId(chain, network),\n isMainnet: !isTestnet(network),\n requiredBlockConfirmations: isNotNullish(env.ingressEgress.witnessSafetyMargins[chain]) ? Number(env.ingressEgress.witnessSafetyMargins[chain]) + 1 : void 0\n}), \"getChainData\");\n\n// src/swap/consts.ts\nvar BACKEND_SERVICE_URLS = {\n [ChainflipNetworks.backspin]: \"https://chainflip-swap-backspin.staging/\",\n [ChainflipNetworks.sisyphos]: \"https://chainflip-swap.staging/\",\n [ChainflipNetworks.perseverance]: \"https://chainflip-swap-perseverance.chainflip.io/\",\n [ChainflipNetworks.mainnet]: \"https://chainflip-swap.chainflip.io/\"\n};\nvar getQuote = /* @__PURE__ */ __name(async (baseUrl, quoteRequest, { signal }) => {\n const { brokerCommissionBps, boostFeeBps, ...returnedRequestData } = quoteRequest;\n const params = {\n amount: returnedRequestData.amount,\n srcChain: returnedRequestData.srcChain,\n srcAsset: returnedRequestData.srcAsset,\n destChain: returnedRequestData.destChain,\n destAsset: returnedRequestData.destAsset,\n ...brokerCommissionBps && {\n brokerCommissionBps: String(brokerCommissionBps)\n },\n ...boostFeeBps && {\n boostFeeBps: String(boostFeeBps)\n }\n };\n const queryParams = new URLSearchParams(params);\n const url = new URL(`/quote?${queryParams.toString()}`, baseUrl).toString();\n const { data } = await axios.get(url, {\n signal\n });\n return {\n ...returnedRequestData,\n quote: data\n };\n}, \"getQuote\");\nvar getStatus = /* @__PURE__ */ __name(async (baseUrl, { id }, { signal }) => {\n const url = new URL(`/swaps/${id}`, baseUrl).toString();\n const { data } = await axios.get(url, {\n signal\n });\n return data;\n}, \"getStatus\");\nvar ApiService_default = {\n getQuote,\n getStatus\n};\n\n// src/swap/sdk.ts\nvar _SwapSDK = class _SwapSDK {\n constructor(options = {}) {\n __publicField(this, \"options\");\n __publicField(this, \"rpcConfig\");\n __publicField(this, \"trpc\");\n __publicField(this, \"stateChainEnvironment\");\n __publicField(this, \"supportedAssets\");\n const network = options.network ?? ChainflipNetworks.perseverance;\n this.options = {\n ...options,\n network,\n backendUrl: options.backendUrl ?? BACKEND_SERVICE_URLS[network]\n };\n this.rpcConfig = options.rpcUrl ? {\n rpcUrl: options.rpcUrl\n } : {\n network\n };\n this.trpc = createTRPCProxyClient({\n transformer: esm_default,\n links: [\n httpBatchLink({\n url: new URL(\"/trpc\", this.options.backendUrl)\n })\n ]\n });\n }\n async getChains(sourceChain) {\n if (sourceChain && !(sourceChain in Chains))\n throw new Error(`unsupported source chain \"${sourceChain}\"`);\n const [env, supportedAssets] = await Promise.all([\n this.getStateChainEnvironment(),\n this.getSupportedAssets()\n ]);\n const supportedChains = [\n ...new Set(supportedAssets.map((a) => assetConstants[a].chain))\n ];\n return supportedChains.map((chain) => getChainData(chain, this.options.network, env)).filter((chain) => chain.chain !== sourceChain);\n }\n async getStateChainEnvironment() {\n this.stateChainEnvironment ?? (this.stateChainEnvironment = await getEnvironment(this.rpcConfig));\n return this.stateChainEnvironment;\n }\n async getSupportedAssets() {\n this.supportedAssets ?? (this.supportedAssets = (await getSupportedAssets(this.rpcConfig)).map((asset) => isValidAssetAndChain(asset) ? getInternalAsset(asset) : void 0).filter(isNotNullish));\n return this.supportedAssets;\n }\n async getAssets(chain) {\n if (chain && !(chain in Chains))\n throw new Error(`unsupported chain \"${chain}\"`);\n const [env, supportedAssets] = await Promise.all([\n this.getStateChainEnvironment(),\n this.getSupportedAssets()\n ]);\n return supportedAssets.map((asset) => getAssetData(asset, this.options.network, env)).filter((asset) => !chain || asset.chain === chain);\n }\n getQuote(quoteRequest, options = {}) {\n return ApiService_default.getQuote(this.options.backendUrl, {\n ...quoteRequest,\n brokerCommissionBps: this.options.broker?.commissionBps\n }, options);\n }\n async requestDepositAddress(depositAddressRequest) {\n const { srcChain, srcAsset, amount } = depositAddressRequest;\n await this.validateSwapAmount({\n chain: srcChain,\n asset: srcAsset\n }, BigInt(amount));\n let response;\n if (this.options.broker !== void 0) {\n const { requestSwapDepositAddress } = await import('./broker-6ZGPANTJ.mjs');\n const result = await requestSwapDepositAddress(depositAddressRequest, this.options.broker, this.options.network);\n response = {\n id: `${result.issuedBlock}-${depositAddressRequest.srcChain}-${result.channelId}`,\n depositAddress: result.address,\n brokerCommissionBps: this.options.broker.commissionBps,\n srcChainExpiryBlock: result.sourceChainExpiryBlock,\n boostFeeBps: depositAddressRequest.boostFeeBps,\n channelOpeningFee: result.channelOpeningFee\n };\n } else {\n response = await this.trpc.openSwapDepositChannel.mutate(depositAddressRequest);\n }\n return {\n ...depositAddressRequest,\n depositChannelId: response.id,\n depositAddress: response.depositAddress,\n brokerCommissionBps: response.brokerCommissionBps,\n boostFeeBps: Number(response.boostFeeBps) || 0,\n depositChannelExpiryBlock: response.srcChainExpiryBlock,\n estimatedDepositChannelExpiryTime: response.estimatedExpiryTime,\n channelOpeningFee: response.channelOpeningFee\n };\n }\n getStatus(swapStatusRequest, options = {}) {\n return ApiService_default.getStatus(this.options.backendUrl, swapStatusRequest, options);\n }\n async executeSwap(params, txOpts = {}) {\n const { srcChain, srcAsset, amount } = params;\n const { signer: optsSigner, ...remainingTxOpts } = txOpts;\n const signer = optsSigner ?? this.options.signer;\n assert(signer, \"No signer provided\");\n await this.validateSwapAmount({\n chain: srcChain,\n asset: srcAsset\n }, BigInt(amount));\n const receipt = await executeSwap_default(params, {\n network: this.options.network,\n signer\n }, remainingTxOpts);\n return receipt.hash;\n }\n async approveVault(params, txOpts = {}) {\n const { signer: optsSigner, ...remainingTxOpts } = txOpts;\n const signer = optsSigner ?? this.options.signer;\n assert(signer, \"No signer provided\");\n const receipt = await approveVault(params, {\n signer,\n network: this.options.network\n }, remainingTxOpts);\n return receipt ? receipt.hash : null;\n }\n async validateSwapAmount(asset, amount) {\n const stateChainEnv = await this.getStateChainEnvironment();\n const result = validateSwapAmount(stateChainEnv, asset, amount);\n if (!result.success)\n throw new Error(result.reason);\n }\n async getSwapLimits() {\n const { swapping: { maximumSwapAmounts }, ingressEgress: { minimumDepositAmounts } } = await this.getStateChainEnvironment();\n return {\n minimumSwapAmounts: minimumDepositAmounts,\n maximumSwapAmounts\n };\n }\n async getRequiredBlockConfirmations() {\n const { ingressEgress: { witnessSafetyMargins } } = await this.getStateChainEnvironment();\n return Object.keys(Chains).reduce((acc, chain) => {\n acc[chain] = witnessSafetyMargins[chain] ? Number(witnessSafetyMargins[chain]) + 1 : null;\n return acc;\n }, {});\n }\n async getChannelOpeningFees() {\n const { ingressEgress: { channelOpeningFees } } = await this.getStateChainEnvironment();\n return channelOpeningFees;\n }\n};\n__name(_SwapSDK, \"SwapSDK\");\nvar SwapSDK = _SwapSDK;\n/*! Bundled license information:\n\n@trpc/client/dist/httpUtils-b9d0cb48.mjs:\n (* istanbul ignore if -- @preserve *)\n\n@trpc/client/dist/links/wsLink.mjs:\n (* istanbul ignore next -- @preserve *)\n*/\n\nexport { SwapSDK };\n","import { Asset as CAsset, AssetData, Chain as CChain, Chains } from '@chainflip/sdk/swap'\nimport { Asset as XAsset, Chain as XChain } from '@xchainjs/xchain-util'\n\nexport const cChainToXChain = (chain: CChain): XChain => {\n switch (chain) {\n case 'Bitcoin':\n return 'BTC'\n case 'Ethereum':\n return 'ETH'\n case 'Polkadot':\n return 'POL'\n default:\n throw Error('Unsupported chain in XChainJS')\n }\n}\n\nexport const xChainToCChain = (chain: XChain): CChain => {\n switch (chain) {\n case 'BTC':\n return Chains.Bitcoin\n case 'ETH':\n return Chains.Ethereum\n case 'POL':\n return Chains.Polkadot\n default:\n throw Error('Unsupported chain in Chainflip')\n }\n}\n\nexport const cAssetToXAsset = (asset: AssetData): XAsset => {\n const chain = cChainToXChain(asset.chain)\n if (!chain) throw Error()\n return {\n chain,\n ticker: asset.contractAddress ? `${asset.symbol}-${asset.contractAddress}` : asset.symbol,\n symbol: asset.symbol,\n synth: false,\n }\n}\n\nexport const xAssetToCAsset = (asset: XAsset): CAsset => {\n return asset.ticker as CAsset\n}\n","import { AssetData, SwapSDK } from '@chainflip/sdk/swap'\nimport { Asset, CachedValue, Chain, CryptoAmount, baseAmount, isSynthAsset } from '@xchainjs/xchain-util'\nimport { Wallet } from '@xchainjs/xchain-wallet'\n\nimport { IProtocol, QuoteSwap, QuoteSwapParams, SwapHistory, TxSubmitted } from '../../types'\n\nimport { cChainToXChain, xAssetToCAsset } from './utils'\n\n/**\n * Chainflip protocol\n */\nexport class ChainflipProtocol implements IProtocol {\n public readonly name = 'Chainflip'\n private sdk: SwapSDK\n private wallet: Wallet\n private assetsData: CachedValue<AssetData[]>\n\n constructor(wallet: Wallet = new Wallet({})) {\n this.sdk = new SwapSDK({\n network: 'mainnet',\n })\n this.wallet = wallet\n this.assetsData = new CachedValue(() => {\n return this.sdk.getAssets()\n }, 24 * 60 * 60 * 1000)\n }\n\n /**\n * Check if an asset is supported in the protocol\n * @param {Asset} asset Asset to check if it is supported\n * @returns {boolean} True if the asset is supported, otherwise false\n */\n public async isAssetSupported(asset: Asset): Promise<boolean> {\n if (isSynthAsset(asset)) return false\n try {\n await this.getAssetData(asset)\n return true\n } catch {\n return false\n }\n }\n\n /**\n * Retrieve the supported chains by the protocol\n * @returns {Chain[]} the supported chains by the protocol\n */\n public async getSupportedChains(): Promise<Chain[]> {\n const chains = await this.sdk.getChains()\n return chains.map((chain) => cChainToXChain(chain.chain)).filter((chain) => chain !== null) as Chain[]\n }\n\n /**\n * Estimate swap by validating the swap parameters.\n *\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters.\n * @returns {QuoteSwap} Quote swap result. If swap cannot be done, it returns an empty QuoteSwap with reasons.\n */\n public async estimateSwap(params: QuoteSwapParams): Promise<QuoteSwap> {\n const srcAssetData = await this.getAssetData(params.fromAsset)\n const destAssetData = await this.getAssetData(params.destinationAsset)\n\n try {\n let toAddress = ''\n if (params.destinationAddress) {\n const { depositAddress } = await this.sdk.requestDepositAddress({\n srcChain: srcAssetData.chain,\n srcAsset: srcAssetData.asset,\n destChain: destAssetData.chain,\n destAsset: destAssetData.asset,\n destAddress: params.destinationAddress,\n amount: params.amount.baseAmount.amount().toString(),\n })\n\n toAddress = depositAddress\n }\n\n const { quote } = await this.sdk.getQuote({\n srcChain: srcAssetData.chain,\n srcAsset: srcAssetData.asset,\n destChain: destAssetData.chain,\n destAsset: destAssetData.asset,\n amount: params.amount.baseAmount.amount().toString(),\n })\n\n const outboundFee = quote.includedFees.find((fee) => fee.type === 'EGRESS')\n const brokerFee = quote.includedFees.find((fee) => fee.type === 'BROKER')\n\n return {\n protocol: this.name,\n toAddress,\n memo: '',\n expectedAmount: new CryptoAmount(\n baseAmount(quote.egressAmount, destAssetData.decimals),\n params.destinationAsset,\n ),\n dustThreshold: new CryptoAmount(\n baseAmount(srcAssetData.minimumSwapAmount, srcAssetData.decimals),\n params.fromAsset,\n ),\n totalSwapSeconds: quote.estimatedDurationSeconds,\n canSwap: toAddress !== '',\n warning: quote.lowLiquidityWarning\n ? 'Do not cache this response. Do not send funds after the expiry. The difference in the chainflip swap rate (excluding fees) is lower than the global index rate of the swap by more than a certain threshold (currently set to 5%)'\n : 'Do not cache this response. Do not send funds after the expiry.',\n errors: [],\n slipBasisPoints: 0,\n fees: {\n asset: params.destinationAsset,\n outboundFee: new CryptoAmount(\n baseAmount(outboundFee ? outboundFee.amount : 0, destAssetData.decimals),\n params.destinationAsset,\n ),\n affiliateFee: new CryptoAmount(\n baseAmount(brokerFee ? brokerFee.amount : 0, destAssetData.decimals),\n params.destinationAsset,\n ),\n },\n }\n } catch (e) {\n return {\n protocol: this.name,\n toAddress: '',\n memo: '',\n expectedAmount: new CryptoAmount(baseAmount(0, destAssetData.decimals), params.destinationAsset),\n dustThreshold: new CryptoAmount(\n baseAmount(srcAssetData.minimumSwapAmount, srcAssetData.decimals),\n params.fromAsset,\n ),\n totalSwapSeconds: 0,\n canSwap: false,\n warning: '',\n errors: [e instanceof Error ? e.message : 'Unknown error'],\n slipBasisPoints: 0,\n fees: {\n asset: params.destinationAsset,\n outboundFee: new CryptoAmount(baseAmount(0, destAssetData.decimals), params.destinationAsset),\n affiliateFee: new CryptoAmount(baseAmount(0, destAssetData.decimals), params.destinationAsset),\n },\n }\n }\n }\n\n /**\n * Perform a swap operation between assets.\n * @param {QuoteSwapParams} quoteSwapParams Swap parameters\n * @returns {TxSubmitted} Transaction hash and URL of the swap\n */\n public async doSwap(params: QuoteSwapParams): Promise<TxSubmitted> {\n const quoteSwap = await this.estimateSwap(params)\n if (!quoteSwap.canSwap) {\n throw Error(`Can not make swap. ${quoteSwap.errors.join('\\n')}`)\n }\n\n const hash = await this.wallet.transfer({\n recipient: quoteSwap.toAddress,\n amount: params.amount.baseAmount,\n asset: params.fromAsset,\n memo: quoteSwap.memo,\n })\n\n return {\n hash,\n url: await this.wallet.getExplorerTxUrl(params.fromAsset.chain, hash),\n }\n }\n\n /**\n * Get historical swaps\n * @throws {Error} - Method not implemented.\n * @returns the swap history\n */\n public async getSwapHistory(): Promise<SwapHistory> {\n throw new Error('Method not implemented.')\n }\n\n /**\n * Get asset data\n * @param {Asset} asset - Asset of which return data\n * @throws {Error} - If asset is not supported in Chainflip\n * @returns the asset data\n */\n private async getAssetData(asset: Asset): Promise<AssetData> {\n const chainAssets = await this.assetsData.getValue()\n const assetData = chainAssets.find((chainAsset) => {\n const contractAddress = asset.symbol.split('-').length > 1 ? asset.symbol.split('-')[1] : undefined\n return (\n chainAsset.asset === xAssetToCAsset(asset) &&\n chainAsset.contractAddress?.toLowerCase() === contractAddress?.toLowerCase()\n )\n })\n if (!assetData) throw Error(`${asset.ticker} asset not supported in ${asset.chain} chain`)\n return assetData\n }\n}\n","import { assetToString } from '@xchainjs/xchain-util'\nimport { Wallet } from '@xchainjs/xchain-wallet'\n\nimport { ChainflipProtocol, MayachainProtocol, ThorchainProtocol } from './protocols'\nimport {\n IProtocol,\n Protocol,\n QuoteSwap,\n QuoteSwapParams,\n SwapHistory,\n SwapHistoryParams,\n SwapResume,\n TxSubmitted,\n} from './types'\n\n// Class definition for an Aggregator\nexport class Aggregator {\n private protocols: IProtocol[]\n\n constructor(wallet?: Wallet) {\n this.protocols = [new ThorchainProtocol(wallet), new MayachainProtocol(wallet), new ChainflipProtocol(wallet)]\n }\n\n /**\n * Estimate swap\n * @param {QuoteSwapParams} params Swap parameters\n * @returns the swap with the greatest expected amount estimated in the supported protocols\n */\n public async estimateSwap(params: QuoteSwapParams): Promise<QuoteSwap> {\n const estimateTask = async (protocol: IProtocol, params: QuoteSwapParams) => {\n const [isFromAssetSupported, isDestinationAssetSupported] = await Promise.all([\n protocol.isAssetSupported(params.fromAsset),\n protocol.isAssetSupported(params.destinationAsset),\n ])\n if (!isFromAssetSupported) throw Error(`${assetToString(params.fromAsset)} not supported in ${protocol.name}`)\n if (!isDestinationAssetSupported)\n throw Error(`${assetToString(params.destinationAsset)} not supported in ${protocol.name}`)\n\n return protocol.estimateSwap(params)\n }\n\n const results = await Promise.allSettled(this.protocols.map((protocol) => estimateTask(protocol, params)))\n\n let optimalSwap: QuoteSwap | undefined\n\n results.forEach((result) => {\n if (result.status === 'fulfilled') {\n if (!optimalSwap || result.value.expectedAmount.assetAmount.gte(optimalSwap.expectedAmount.assetAmount))\n optimalSwap = result.value\n }\n })\n\n if (!optimalSwap)\n throw Error(\n `Can not estimate swap from ${assetToString(params.fromAsset)} to ${assetToString(params.destinationAsset)}`,\n )\n\n return optimalSwap\n }\n\n /**\n * Do swap\n * @param {QuoteSwapParams & { protocol?: Protocol }} params Swap parameters. If protocol is not set,\n * estimateSwap will be call and swap will be done in protocol with the greatest expected amount\n * @returns the swap with the greatest expected amount estimated in the supported protocols\n */\n public async doSwap(params: QuoteSwapParams & { protocol?: Protocol }): Promise<TxSubmitted> {\n const protocolName = params.protocol ? params.protocol : (await this.estimateSwap(params)).protocol\n const protocol = this.protocols.find((protocol) => protocol.name === protocolName)\n\n if (!protocol) throw Error(`${protocolName} protocol is not supported`)\n return protocol.doSwap(params)\n }\n\n /**\n * Get historical swaps\n * @param {Address[]} addresses Addresses of which return their swap history\n * @returns the swap history\n */\n public async getSwapHistory(params: SwapHistoryParams): Promise<SwapHistory> {\n const getProtocolSwapHistory = async (protocol: IProtocol, params: SwapHistoryParams): Promise<SwapHistory> => {\n const supportedChains = await protocol.getSupportedChains()\n const compatibleChainAddresses = params.chainAddresses.filter(\n (chainAddress) => supportedChains.findIndex((supportedChain) => supportedChain === chainAddress.chain) !== -1,\n )\n return compatibleChainAddresses.length === 0\n ? {\n swaps: [],\n count: 0,\n }\n : protocol.getSwapHistory({\n chainAddresses: compatibleChainAddresses,\n })\n }\n\n const results = await Promise.allSettled(\n this.protocols.map((protocol) => {\n return getProtocolSwapHistory(protocol, params)\n }),\n )\n\n const swaps: SwapResume[] = []\n\n results.forEach((result) => {\n if (result.status === 'fulfilled') {\n swaps.push(...result.value.swaps)\n }\n })\n\n return {\n count: swaps.length,\n swaps: swaps.sort((swapA, swapB) => swapB.date.getTime() - swapA.date.getTime()),\n }\n }\n}\n","import { ccmMetadataSchema } from './chunk-J5DGP4KI.mjs';\nimport { z, __name, Chains, uncheckedAssetAndChain, numericString, hexString, btcAddress, hexStringFromNumber, dotAddress, ethereumAddress, unsignedInteger, u128 } from './chunk-QNH6727P.mjs';\nimport { u8aToHex } from '@polkadot/util';\nimport { decodeAddress } from '@polkadot/util-crypto';\nimport axios from 'axios';\n\n// ../shared/src/strings.ts\nvar camelToSnakeCase = /* @__PURE__ */ __name((str) => str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`), \"camelToSnakeCase\");\n\n// ../shared/src/broker.ts\nvar transformObjToSnakeCase = /* @__PURE__ */ __name((obj) => {\n if (!obj)\n return void 0;\n const newObj = {};\n for (const key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n newObj[camelToSnakeCase(key)] = obj[key];\n }\n }\n return newObj;\n}, \"transformObjToSnakeCase\");\nvar submitAddress = /* @__PURE__ */ __name((chain, address) => {\n if (chain === Chains.Polkadot) {\n return address.startsWith(\"0x\") ? z.string().length(66).parse(address) : u8aToHex(decodeAddress(address));\n }\n return address;\n}, \"submitAddress\");\nvar rpcResult = z.union([\n z.object({\n error: z.object({\n code: z.number().optional(),\n message: z.string().optional(),\n data: z.unknown().optional()\n })\n }),\n z.object({\n result: z.unknown()\n })\n]);\nvar requestValidators = /* @__PURE__ */ __name((network) => ({\n requestSwapDepositAddress: z.tuple([\n uncheckedAssetAndChain,\n uncheckedAssetAndChain,\n z.union([\n numericString,\n hexString,\n btcAddress(network)\n ]),\n z.number(),\n ccmMetadataSchema.merge(z.object({\n gasBudget: hexStringFromNumber,\n cfParameters: z.union([\n hexString,\n z.string()\n ]).optional()\n })).optional(),\n z.number().optional()\n ]).transform(([a, b, c, d, e, f]) => [\n a,\n b,\n c,\n d,\n transformObjToSnakeCase(e),\n f\n ])\n}), \"requestValidators\");\nvar responseValidators = /* @__PURE__ */ __name((network) => ({\n requestSwapDepositAddress: z.object({\n address: z.union([\n dotAddress,\n ethereumAddress,\n btcAddress(network)\n ]),\n issued_block: z.number(),\n channel_id: z.number(),\n expiry_block: z.number().int().safe().positive().optional(),\n source_chain_expiry_block: unsignedInteger.optional(),\n channel_opening_fee: u128.optional().default(0)\n }).transform(({ address, issued_block, channel_id, source_chain_expiry_block, channel_opening_fee }) => ({\n address,\n issuedBlock: issued_block,\n channelId: BigInt(channel_id),\n sourceChainExpiryBlock: source_chain_expiry_block,\n channelOpeningFee: channel_opening_fee\n }))\n}), \"responseValidators\");\nvar makeRpcRequest = /* @__PURE__ */ __name(async (network, url, method, ...params) => {\n const res = await axios.post(url.toString(), {\n jsonrpc: \"2.0\",\n id: 1,\n method: `broker_${method}`,\n params: requestValidators(network)[method].parse(params)\n });\n const result = rpcResult.parse(res.data);\n if (\"error\" in result) {\n throw new Error(`Broker responded with error code ${result.error.code}: ${result.error.message}`);\n }\n return responseValidators(network)[method].parse(result.result);\n}, \"makeRpcRequest\");\nasync function requestSwapDepositAddress(swapRequest, opts, chainflipNetwork) {\n const { srcAsset, srcChain, destAsset, destChain, destAddress, boostFeeBps } = swapRequest;\n return makeRpcRequest(chainflipNetwork, opts.url, \"requestSwapDepositAddress\", {\n asset: srcAsset,\n chain: srcChain\n }, {\n asset: destAsset,\n chain: destChain\n }, submitAddress(destChain, destAddress), opts.commissionBps, swapRequest.ccmMetadata && {\n ...swapRequest.ccmMetadata,\n cfParameters: void 0\n }, boostFeeBps);\n}\n__name(requestSwapDepositAddress, \"requestSwapDepositAddress\");\n\nexport { requestSwapDepositAddress };\n"],"names":["MayachainQuery","MayachainAMM","eqAsset","AssetCacao","assetFromStringEx","MAYAChain","ThorchainQuery","ThorchainAMM","AssetRuneNative","assetToString","THORChain","TextDecoder","Fallback","TextEncoder","isFunction","BigInt","CHR","U8","U16","isBuffer","u32","bytes","blake2b","isBytes","chain","number","exists","output","isLE","utf8ToBytes","toBytes","abytes","Hash","U32_MASK64","_32n","fromBig","split","toBig","shrSH","shrSL","rotrSH","rotrSL","rotrBH","rotrBL","rotr32H","rotr32L","rotlSH","rotlSL","rotlBH","rotlBL","add","add3L","add3H","add4L","add4H","add5L","add5H","u64","blake2bJs","defaults","encodeAddress","isError","assert","BN_0","BN_1","passProperties","_guard","sha256","internal","PanicReasons","isString","ethers.isAddress","ethers.getBytes","ethers.sha256","validators","isArray","isUndefined","isNumber","isObject","isBoolean","isPlainObject","isDate","forEach","isTypedArray","isRegExp","noop","utils","prototype","encode","URLSearchParams","FormData","Blob","platform","AxiosHeaders","composeSignals","InterceptorManager","Axios","CancelToken","HttpStatusCode","axios","Wallet","CachedValue","isSynthAsset","CryptoAmount","baseAmount"],"mappings":"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,CAAC,CAAC;AACvD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACvD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxD,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE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;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;AACvC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;AACzC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AAC3C;AACA;AACA;AACA,IAAI,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;AACxC;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;AAC1C;AACA;AACA;AACA,IAAI,OAAO,OAAO,CAAC,CAAC,EAAE,E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KAAK;AACL;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AAC5C,KAAK;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,kBAAkB,CAAC;AAChC;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC;AACb;AACA;AACA;AACA,IAAI,EAAE,CAAC;AACP;AACA;AACA;AACA,IAAI,IAAI,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC;AACpB;AACA;AACA;AACA,IAAI,IAAI,CAAC;AACT;AACA;AACA;AACA,IAAI,KAAK,CAAC;AACV;AACA;AACA;AACA,IAAI,SAAS,CAAC;AACd;AACA;AACA;AACA,IAAI,WAAW,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,CAAC;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,OAAO,CAAC;AACZ;AACA;AACA;AACA,IAAI,WAAW,CAAC;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iBAAiB,CAAC;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,CAAC;AACb;AACA;AACA;AACA,IAAI,YAAY,CAAC;AACjB;AACA;AACA;AACA,IAAI,IAAI,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC;AACX;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,CAAC;AACT,IAAI,KAAK,CAAC;AACV;AACA;AACA;AACA,IAAI,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE;AAC9B,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACxD,YAAY,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC1C,SAAS,CAA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"}
|